summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrej Shadura <andrewsh@debian.org>2018-12-26 20:22:36 +0100
committerAndrej Shadura <andrewsh@debian.org>2018-12-26 20:22:36 +0100
commit991420c6b1ebc1f041818ffeaee65e5dcaa1581d (patch)
treef8537e1dc33fcdbaaebe0801a7598c2d7f5baea2
parent0abd94bb0cc3d7cc07da074acccffcfbc27b0352 (diff)
Import Upstream version 1.9.0+dfsg
-rw-r--r--.classpath11
-rw-r--r--.gitignore33
-rw-r--r--.project17
-rw-r--r--ACKNOWLEDGMENT6
-rw-r--r--CHANGES450
-rw-r--r--CONTRIBUTOR62
-rwxr-xr-x[-rw-r--r--]README57
-rw-r--r--TODO21
-rw-r--r--build.xml219
-rw-r--r--doc/api/allclasses-frame.html103
-rw-r--r--doc/api/allclasses-noframe.html103
-rw-r--r--doc/api/constant-values.html446
-rw-r--r--doc/api/deprecated-list.html144
-rw-r--r--doc/api/help-doc.html217
-rw-r--r--doc/api/index-all.html1211
-rw-r--r--doc/api/index.html39
-rw-r--r--doc/api/morfologik/fsa/CFSA.html871
-rw-r--r--doc/api/morfologik/fsa/CFSA2.html779
-rw-r--r--doc/api/morfologik/fsa/CFSA2Serializer.html414
-rw-r--r--doc/api/morfologik/fsa/ConstantArcSizeFSA.html654
-rw-r--r--doc/api/morfologik/fsa/FSA.html855
-rw-r--r--doc/api/morfologik/fsa/FSA5.html887
-rw-r--r--doc/api/morfologik/fsa/FSA5Serializer.html468
-rw-r--r--doc/api/morfologik/fsa/FSABuilder.InfoEntry.html431
-rw-r--r--doc/api/morfologik/fsa/FSABuilder.html450
-rw-r--r--doc/api/morfologik/fsa/FSAFinalStatesIterator.html339
-rw-r--r--doc/api/morfologik/fsa/FSAFlags.html484
-rw-r--r--doc/api/morfologik/fsa/FSAInfo.html399
-rw-r--r--doc/api/morfologik/fsa/FSASerializer.html335
-rw-r--r--doc/api/morfologik/fsa/FSATraversal.html394
-rw-r--r--doc/api/morfologik/fsa/FSAUtils.IntIntHolder.html295
-rw-r--r--doc/api/morfologik/fsa/FSAUtils.html379
-rw-r--r--doc/api/morfologik/fsa/MatchResult.html397
-rw-r--r--doc/api/morfologik/fsa/StateVisitor.html211
-rw-r--r--doc/api/morfologik/fsa/package-frame.html84
-rw-r--r--doc/api/morfologik/fsa/package-summary.html251
-rw-r--r--doc/api/morfologik/fsa/package-tree.html172
-rw-r--r--doc/api/morfologik/stemming/Dictionary.html489
-rw-r--r--doc/api/morfologik/stemming/DictionaryIterator.html310
-rw-r--r--doc/api/morfologik/stemming/DictionaryLookup.html376
-rw-r--r--doc/api/morfologik/stemming/DictionaryMetadata.html437
-rw-r--r--doc/api/morfologik/stemming/IStemmer.html220
-rw-r--r--doc/api/morfologik/stemming/PolishStemmer.html302
-rw-r--r--doc/api/morfologik/stemming/WordData.html447
-rw-r--r--doc/api/morfologik/stemming/package-frame.html53
-rw-r--r--doc/api/morfologik/stemming/package-summary.html190
-rw-r--r--doc/api/morfologik/stemming/package-tree.html160
-rw-r--r--doc/api/morfologik/tools/FSABuildTool.Format.html346
-rw-r--r--doc/api/morfologik/tools/FSABuildTool.html522
-rw-r--r--doc/api/morfologik/tools/FSADumpTool.html457
-rw-r--r--doc/api/morfologik/tools/IMessageLogger.html272
-rw-r--r--doc/api/morfologik/tools/InflectionFramesTool.html279
-rw-r--r--doc/api/morfologik/tools/Launcher.html259
-rw-r--r--doc/api/morfologik/tools/MorphEncoder.html584
-rw-r--r--doc/api/morfologik/tools/WriterMessageLogger.html337
-rw-r--r--doc/api/morfologik/tools/package-frame.html64
-rw-r--r--doc/api/morfologik/tools/package-summary.html205
-rw-r--r--doc/api/morfologik/tools/package-tree.html167
-rw-r--r--doc/api/morfologik/util/Arrays.html343
-rw-r--r--doc/api/morfologik/util/BufferUtils.html273
-rw-r--r--doc/api/morfologik/util/FileUtils.html424
-rw-r--r--doc/api/morfologik/util/ResourceUtils.html228
-rw-r--r--doc/api/morfologik/util/package-frame.html38
-rw-r--r--doc/api/morfologik/util/package-summary.html167
-rw-r--r--doc/api/morfologik/util/package-tree.html151
-rw-r--r--doc/api/overview-frame.html48
-rw-r--r--doc/api/overview-summary.html161
-rw-r--r--doc/api/overview-tree.html176
-rw-r--r--doc/api/package-list4
-rw-r--r--doc/api/resources/inherit.gifbin57 -> 0 bytes
-rw-r--r--doc/api/stylesheet.css29
-rw-r--r--lib/commons-cli-1.2.jarbin41123 -> 0 bytes
-rw-r--r--lib/hppc-0.3.2.jarbin981375 -> 0 bytes
-rw-r--r--lib/junit-4.7.jarbin232354 -> 0 bytes
-rw-r--r--lib/junit-benchmarks-0.1.0.jarbin54998 -> 0 bytes
-rw-r--r--lib/junit.LICENSE88
-rw-r--r--lib/thirdparty.LICENSE5
-rw-r--r--licenses/commons-cli.LICENSE (renamed from lib/commons-cli-1.2.LICENSE)0
-rw-r--r--licenses/commons-lang.LICENSE (renamed from lib/junit-benchmarks.LICENSE)2
-rw-r--r--licenses/hppc.LICENSE (renamed from lib/hppc.LICENSE)0
-rw-r--r--licenses/morfologik-polish.LICENSE28
-rw-r--r--morfologik-distribution/pom.xml112
-rw-r--r--morfologik-distribution/src/main/assembly/bin.xml77
-rw-r--r--morfologik-fsa/pom.xml38
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/CFSA.java (renamed from src/morfologik/fsa/CFSA.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/CFSA2.java (renamed from src/morfologik/fsa/CFSA2.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/CFSA2Serializer.java (renamed from src/morfologik/fsa/CFSA2Serializer.java)13
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/ConstantArcSizeFSA.java (renamed from src/morfologik/fsa/ConstantArcSizeFSA.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSA.java (renamed from src/morfologik/fsa/FSA.java)22
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSA5.java (renamed from src/morfologik/fsa/FSA5.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSA5Serializer.java (renamed from src/morfologik/fsa/FSA5Serializer.java)2
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSABuilder.java (renamed from src/morfologik/fsa/FSABuilder.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSAFinalStatesIterator.java (renamed from src/morfologik/fsa/FSAFinalStatesIterator.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSAFlags.java (renamed from src/morfologik/fsa/FSAFlags.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSAHeader.java (renamed from src/morfologik/fsa/FSAHeader.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSAInfo.java (renamed from src/morfologik/fsa/FSAInfo.java)11
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSASerializer.java (renamed from src/morfologik/fsa/FSASerializer.java)2
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSATraversal.java (renamed from src/morfologik/fsa/FSATraversal.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/FSAUtils.java (renamed from src/morfologik/fsa/FSAUtils.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/IMessageLogger.java (renamed from src/morfologik/tools/IMessageLogger.java)2
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/MatchResult.java (renamed from src/morfologik/fsa/MatchResult.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/NullMessageLogger.java (renamed from src/morfologik/fsa/NullMessageLogger.java)2
-rw-r--r--morfologik-fsa/src/main/java/morfologik/fsa/StateVisitor.java (renamed from src/morfologik/fsa/StateVisitor.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/util/Arrays.java (renamed from src/morfologik/util/Arrays.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/util/BufferUtils.java (renamed from src/morfologik/util/BufferUtils.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/util/FileUtils.java (renamed from src/morfologik/util/FileUtils.java)0
-rw-r--r--morfologik-fsa/src/main/java/morfologik/util/ResourceUtils.java (renamed from src/morfologik/util/ResourceUtils.java)0
-rw-r--r--morfologik-fsa/src/test/java/morfologik/fsa/CFSA2SerializerTest.java (renamed from src-test/morfologik/fsa/CFSA2SerializerTest.java)0
-rw-r--r--morfologik-fsa/src/test/java/morfologik/fsa/FSA5SerializerTest.java (renamed from src-test/morfologik/fsa/FSA5SerializerTest.java)0
-rw-r--r--morfologik-fsa/src/test/java/morfologik/fsa/FSA5Test.java (renamed from src-test/morfologik/fsa/FSA5Test.java)12
-rw-r--r--morfologik-fsa/src/test/java/morfologik/fsa/FSABuilderTest.java (renamed from src-test/morfologik/fsa/FSABuilderTest.java)0
-rw-r--r--morfologik-fsa/src/test/java/morfologik/fsa/FSATestUtils.java (renamed from src-test/morfologik/fsa/FSATestUtils.java)0
-rw-r--r--morfologik-fsa/src/test/java/morfologik/fsa/FSATraversalTest.java (renamed from src-test/morfologik/fsa/FSATraversalTest.java)0
-rw-r--r--morfologik-fsa/src/test/java/morfologik/fsa/SerializerTestBase.java (renamed from src-test/morfologik/fsa/SerializerTestBase.java)0
-rw-r--r--morfologik-fsa/src/test/java/morfologik/util/MinMax.java (renamed from src-test/morfologik/util/MinMax.java)0
-rw-r--r--morfologik-fsa/src/test/resources/morfologik/fsa/abc-numbers.fsa (renamed from src-test/morfologik/fsa/abc-numbers.fsa)bin29 -> 29 bytes
-rw-r--r--morfologik-fsa/src/test/resources/morfologik/fsa/abc.fsa (renamed from src-test/morfologik/fsa/abc.fsa)bin24 -> 24 bytes
-rw-r--r--morfologik-fsa/src/test/resources/morfologik/fsa/abc.in (renamed from src-test/morfologik/fsa/abc.in)0
-rw-r--r--morfologik-fsa/src/test/resources/morfologik/fsa/en_tst.dict (renamed from src-test/morfologik/fsa/en_tst.dict)bin1070678 -> 1070678 bytes
-rw-r--r--morfologik-fsa/src/test/resources/morfologik/fsa/minimal.fsa (renamed from src-test/morfologik/fsa/minimal.fsa)bin24 -> 24 bytes
-rw-r--r--morfologik-fsa/src/test/resources/morfologik/fsa/minimal.in (renamed from src-test/morfologik/fsa/minimal.in)0
-rw-r--r--morfologik-fsa/src/test/resources/morfologik/fsa/minimal2.fsa (renamed from src-test/morfologik/fsa/minimal2.fsa)bin194 -> 194 bytes
-rw-r--r--morfologik-fsa/src/test/resources/morfologik/fsa/minimal2.in (renamed from src-test/morfologik/fsa/minimal2.in)0
-rw-r--r--morfologik-polish/pom.xml58
-rw-r--r--morfologik-polish/src/main/java/morfologik/stemming/PolishStemmer.java54
-rw-r--r--morfologik-polish/src/main/resources/morfologik/dictionaries/pl.README-en67
-rw-r--r--morfologik-polish/src/main/resources/morfologik/dictionaries/pl.README-pl141
-rw-r--r--morfologik-polish/src/main/resources/morfologik/dictionaries/pl.dictbin0 -> 2804243 bytes
-rw-r--r--morfologik-polish/src/main/resources/morfologik/dictionaries/pl.info36
-rw-r--r--morfologik-polish/src/test/java/morfologik/stemming/PerformanceTest.java (renamed from src-test/morfologik/stemming/PerformanceTest.java)4
-rw-r--r--morfologik-polish/src/test/java/morfologik/stemming/PolishMorfologikStemmerTest.java141
-rw-r--r--morfologik-speller/pom.xml58
-rw-r--r--morfologik-speller/src/main/java/morfologik/speller/HMatrix.java100
-rw-r--r--morfologik-speller/src/main/java/morfologik/speller/Speller.java920
-rw-r--r--morfologik-speller/src/test/java/morfologik/speller/HMatrixTest.java21
-rw-r--r--morfologik-speller/src/test/java/morfologik/speller/SpellerTest.java272
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.dictbin0 -> 162 bytes
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.info15
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.txt21
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/slownik.dictbin0 -> 130 bytes
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/slownik.info14
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/test-infix.dict (renamed from src-test/morfologik/stemming/test-infix.dict)bin1859 -> 1859 bytes
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/test-infix.info (renamed from src-test/morfologik/stemming/test-infix.info)3
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/test-utf-spell.dictbin0 -> 168 bytes
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/test-utf-spell.info15
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/test_freq_iso.dictbin0 -> 129 bytes
-rw-r--r--morfologik-speller/src/test/resources/morfologik/speller/test_freq_iso.info16
-rw-r--r--morfologik-stemming/pom.xml71
-rw-r--r--morfologik-stemming/src/main/java/morfologik/stemming/ArrayViewList.java (renamed from src/morfologik/stemming/ArrayViewList.java)2
-rw-r--r--morfologik-stemming/src/main/java/morfologik/stemming/Dictionary.java233
-rw-r--r--morfologik-stemming/src/main/java/morfologik/stemming/DictionaryAttribute.java333
-rw-r--r--morfologik-stemming/src/main/java/morfologik/stemming/DictionaryIterator.java (renamed from src/morfologik/stemming/DictionaryIterator.java)7
-rw-r--r--morfologik-stemming/src/main/java/morfologik/stemming/DictionaryLookup.java403
-rw-r--r--morfologik-stemming/src/main/java/morfologik/stemming/DictionaryMetadata.java298
-rw-r--r--morfologik-stemming/src/main/java/morfologik/stemming/DictionaryMetadataBuilder.java139
-rw-r--r--morfologik-stemming/src/main/java/morfologik/stemming/EncoderType.java11
-rw-r--r--morfologik-stemming/src/main/java/morfologik/stemming/IStemmer.java (renamed from src/morfologik/stemming/IStemmer.java)0
-rw-r--r--morfologik-stemming/src/main/java/morfologik/stemming/WordData.java (renamed from src/morfologik/stemming/WordData.java)11
-rw-r--r--morfologik-stemming/src/test/java/morfologik/stemming/DictionaryLookupTest.java247
-rw-r--r--morfologik-stemming/src/test/java/morfologik/stemming/DictionaryMetadataBuilderTest.java49
-rw-r--r--morfologik-stemming/src/test/java/morfologik/stemming/DictionaryTest.java27
-rw-r--r--morfologik-stemming/src/test/java/morfologik/stemming/StringDecoderBenchmarkTest.java (renamed from src-test/morfologik/stemming/StringDecoderBenchmarkTest.java)0
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-diacritics-utf8.dict (renamed from src-test/morfologik/stemming/test-diacritics-utf8.dict)bin136 -> 136 bytes
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-diacritics-utf8.info (renamed from src-test/morfologik/stemming/test-diacritics-utf8.info)1
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-infix.dictbin0 -> 1859 bytes
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-infix.info8
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-prefix.dict (renamed from src-test/morfologik/stemming/test-prefix.dict)bin1776 -> 1776 bytes
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-prefix.info (renamed from src-test/morfologik/stemming/test-prefix.info)4
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-separators.dict (renamed from src-test/morfologik/stemming/test-separators.dict)bin155 -> 155 bytes
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-separators.info (renamed from src-test/morfologik/stemming/test-separators.info)3
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-separators.txt (renamed from src-test/morfologik/stemming/test-separators.txt)0
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-synth.dict (renamed from src-test/morfologik/stemming/test-synth.dict)bin1354192 -> 1354192 bytes
-rw-r--r--morfologik-stemming/src/test/resources/morfologik/stemming/test-synth.info (renamed from src-test/morfologik/stemming/test-synth.info)0
-rw-r--r--morfologik-tools/pom.xml159
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/FSABuildTool.java (renamed from src/morfologik/tools/FSABuildTool.java)97
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/FSADumpTool.java (renamed from src/morfologik/tools/FSADumpTool.java)113
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/InflectionFramesTool.java (renamed from src/morfologik/tools/InflectionFramesTool.java)10
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/Launcher.java (renamed from src/morfologik/tools/Launcher.java)5
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/MorphEncodingTool.java255
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/PolishStemmingTool.java (renamed from src/morfologik/tools/PolishStemmingTool.java)6
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/SequenceAssembler.java46
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/SequenceEncoders.java361
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/SharedOptions.java (renamed from src/morfologik/tools/SharedOptions.java)31
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/Tool.java (renamed from src/morfologik/tools/Tool.java)26
-rw-r--r--morfologik-tools/src/main/java/morfologik/tools/WriterMessageLogger.java (renamed from src/morfologik/tools/WriterMessageLogger.java)2
-rw-r--r--morfologik-tools/src/proguard/rules.pro16
-rw-r--r--morfologik-tools/src/test/java/morfologik/tools/FSABuildToolTest.java53
-rw-r--r--morfologik-tools/src/test/java/morfologik/tools/LauncherTest.java (renamed from src-test/morfologik/tools/LauncherTest.java)2
-rw-r--r--morfologik-tools/src/test/java/morfologik/tools/MorphEncodingToolTest.java243
-rw-r--r--morfologik-tools/src/test/java/morfologik/tools/SequenceEncodersRandomizedTest.java106
-rw-r--r--morfologik-tools/src/test/java/morfologik/tools/SequenceEncodersStaticTest.java96
-rw-r--r--morfologik-tools/src/test/java/morfologik/tools/Text2FSA5Test.java (renamed from src-test/morfologik/tools/Text2FSA5Test.java)0
-rw-r--r--morfologik.LICENSE (renamed from LICENSE)2
-rw-r--r--pom.xml339
-rw-r--r--src-test/morfologik/stemming/DictionaryLookupTest.java250
-rw-r--r--src-test/morfologik/stemming/PolishStemmerTest.java54
-rw-r--r--src-test/morfologik/tools/MorphEncoderTest.java125
-rw-r--r--src-test/morfologik/tools/MorphEncodingToolTest.java110
-rw-r--r--src/morfologik/dictionaries/pl.LICENSE8
-rw-r--r--src/morfologik/dictionaries/pl.dictbin1806661 -> 0 bytes
-rw-r--r--src/morfologik/dictionaries/pl.info13
-rw-r--r--src/morfologik/stemming/Dictionary.java169
-rw-r--r--src/morfologik/stemming/DictionaryLookup.java355
-rw-r--r--src/morfologik/stemming/DictionaryMetadata.java122
-rw-r--r--src/morfologik/stemming/PolishStemmer.java43
-rw-r--r--src/morfologik/tools/MorphEncoder.java399
-rw-r--r--src/morfologik/tools/MorphEncodingTool.java213
207 files changed, 6407 insertions, 22847 deletions
diff --git a/.classpath b/.classpath
deleted file mode 100644
index df7d164..0000000
--- a/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="src" path="src-test"/>
- <classpathentry kind="lib" path="lib/commons-cli-1.2.jar"/>
- <classpathentry kind="lib" path="lib/junit-benchmarks-0.1.0.jar"/>
- <classpathentry kind="lib" path="lib/junit-4.7.jar"/>
- <classpathentry kind="lib" path="lib/hppc-0.3.2.jar"/>
- <classpathentry kind="output" path="tmp/eclipse"/>
-</classpath>
diff --git a/.gitignore b/.gitignore
index fa137ce..746231c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,34 @@
+*.versionsBackup
tmp/
dist/
-*.patch \ No newline at end of file
+target/
+*.patch
+.eclipse/
+.project
+.classpath
+.settings
+*.name
+*.iml
+.idea/compiler.xml
+.idea/encodings.xml
+.idea/copyright/profiles_settings.xml
+.idea/libraries/Maven__com_carrotsearch_hppc_0_5_3.xml
+.idea/libraries/Maven__com_carrotsearch_junit_benchmarks_0_7_2.xml
+.idea/libraries/proguard.xml
+.idea/misc.xml
+.idea/modules.xml
+.idea/qaplug_profiles.xml
+.idea/scopes/scope_settings.xml
+.idea/vcs.xml
+.idea/workspace.xml
+.idea/libraries/Maven__com_carrotsearch_randomizedtesting_randomizedtesting_runner_2_0_13.xml
+.idea/libraries/Maven__com_google_guava_guava_15_0.xml
+.idea/libraries/Maven__commons_cli_commons_cli_1_2.xml
+.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml
+.idea/libraries/Maven__junit_junit_4_11.xml
+.idea/libraries/Maven__org_easytesting_fest_assert_core_2_0M10.xml
+.idea/libraries/Maven__org_easytesting_fest_util_1_2_5.xml
+.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
+.idea/uiDesigner.xml
+.idea/inspectionProfiles/Project_Default.xml
+.idea/inspectionProfiles/profiles_settings.xml
diff --git a/.project b/.project
deleted file mode 100644
index fe93ffc..0000000
--- a/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>morfologik-stemming</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/ACKNOWLEDGMENT b/ACKNOWLEDGMENT
deleted file mode 100644
index c68b089..0000000
--- a/ACKNOWLEDGMENT
+++ /dev/null
@@ -1,6 +0,0 @@
-Polish stemming data comes from Polish ispell/myspell dictionary hosted at
-http://sjp.pl/. It was corrected and enriched with part-of-speech tags in
-Morfologik project. The resulting data set is licensed on the terms
-of LGPL and/or Creative Commons ShareAlike (pick the suitable license).
-
-See http://morfologik.blogspot.com \ No newline at end of file
diff --git a/CHANGES b/CHANGES
index 65243fe..be4426a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,179 +1,395 @@
-1.5.0
- Major size saving improvements in CFSA2. Built in Polish dictionary size decreased from
- 2,811,345 to 1,806,661 (CFSA2 format).
+Morfologik-stemming Change Log
- FSABuilder returns a ready-to-be-used FSA (ConstantArcSizeFSA). Construction overhead
- for this automaton is a round zero (it is immediately serialized in-memory).
+For an up-to-date CHANGES file see
+https://github.com/morfologik/morfologik-stemming/blob/master/CHANGES
- Polish dictionary updated to Morfologik 1.7. [19.11.2010]
+======================= morfologik-stemming 1.9.0 =======================
- Added an option to serialize automaton to CFSA2 or FSA5 directly from fsa_build.
+Changes in backwards compatibility policy
- CFSA is now deprecated for serialization (the code still reads CFSA automata, but will
- no be able to serialize them). Use CFSA2.
+New Features
- Added immediate state interning.
- Speedup in automaton construction by about 30%, memory use
- decreased significantly (did not perform exact measurements, but incremental
- construction from presorted data should consume way less memory).
+* Added capability to normalize input and output strings for dictionaries.
+ This is useful for dictionaries that do not support ligatures, for example.
+ To specify input conversion, use the property 'fsa.dict.input-conversion'
+ in the .info file. The output conversion (for example, to use ligatures)
+ is specified by 'fsa.dict.output-conversion'. Note that lengthy
+ conversion tables may negatively affect performance.
- Added an option to build FSA from already sorted data (--sorted). Avoids in-memory sorting.
- Pipe the input through shell sort if building FSA from large data.
+Bug Fixes
- Changed the default ordering from Java signed-byte to C-like unsigned byte value.
- This lets one use GNU sort to sort the input using 'export LC_ALL=C; sort input'.
+Optimizations
- Added traversal routines to calculate perfect hashing based on FSA with NUMBERS.
+ * The suggestion search for the speller is now performed directly by traversing
+ the dictionary automaton, which makes it much more time-efficient (thanks
+ to Jaume Ortolà).
- Changed the order of serialized arcs in the binary serializer for FSA5 to lexicographic
- (consistent with the input). Depth-first traversal recreates the input, in other words.
+ * Suggestions are generated faster by avoiding unnecessary case conversions.
- Removed character-based automata.
+======================= morfologik-stemming 1.8.3 =======================
- Incompatible API changes to FSA builders (moved to morfologik.fsa).
+Bug Fixes
- Incompatible API changes to FSATraversalHelper. Cleaned up match types, added
- unit tests.
+* Fixed a bug for spelling dictionaries in non-UTF encodings with
+ separators: strings with non-encodable characters might have been
+ accepted as spelled correctly even if they were missing in the
+ dictionary.
- ################################################################
- - Incompatible API changes have been made in release 1.5.0. See above.
- - An external dependency HPPC (high performance primitive collections) is now required
- for compiling FSAs (it is optional for traversals).
- ################################################################
+======================= morfologik-stemming 1.8.2 =======================
-1.4.1
- Upgrade of the built-in Morfologik dictionary for Polish (in CFSA format).
+New Features
- Added options to define custom FILLER and ANNOT_SEPARATOR bytes in the fsa_build
- tool.
+* Added the option of using frequencies of words for sorting spelling
+ replacements. It can be used in both spelling and tagging dictionaries.
+ 'fsa.dict.frequency-included=true' must be added to the .info file.
+ For building the dictionary, add at the end of each entry a separator and
+ a character between A and Z (A: less frequently used words;
+ Z: more frequently used words). (Jaume Ortolà)
- Corrected an inconsistency with the C fsa package -- FILLER and ANNOT_SEPARATOR
- characters are now identical with the C version.
+======================= morfologik-stemming 1.8.1 =======================
+
+Changes in backwards compatibility policy
+
+* MorphEncodingTool will *fail* if it detects data/lines that contain the
+ separator annotation byte. This is because such lines get encoded into
+ something that the decoder cannot process. You can use \u0000 as the
+ annotation byte to avoid clashes with any existing data.
+
+======================= morfologik-stemming 1.8.0 =======================
+
+Changes in backwards compatibility policy
+
+* Command-line option changes to MorphEncodingTool - it now accepts an explicit
+ name of the sequence encoder, not infix/suffix/prefix booleans.
+
+* Updating dependencies to their newest versions.
+
+New Features
+
+* Dictionary .info files can specify the sequence decoder explicitly:
+ suffix, prefix, infix, none are supported. For backwards compatibility,
+ fsa.dict.uses-prefixes, fsa.dict.uses-infixes and fsa.dict.uses-suffixes
+ are still supported, but will be removed in the next major version.
+
+* Command-line option changes to MorphEncodingTool - it now accepts an explicit
+ name of the sequence encoder, not infix/suffix/prefix booleans.
+
+* Rewritten implementation of tab-separated data files (tab2morph tool).
+ The output should yield smaller files, especially for prefix encoding
+ and infix encoding. This does *not* necessarily mean smaller automata
+ but we're working on getting these as well.
+
+ Example output before and after refactoring:
+
+ Prefix coder:
+ postmodernizm|modernizm|xyz => [before] postmodernizm+ANmodernizm+xyz
+ => [after ] postmodernizm+EA+xyz
+
+ Infix coder:
+ laquelle|lequel|D f s => [before] laquelle+AAHequel+D f s
+ => [after ] laquelle+AGAquel+D f s
+
+* Changed the default format of the Polish dictionary from infix
+ encoded to prefix encoded (smaller output size).
+
+Optimizations
+
+* A number of internal implementation cleanups and refactorings.
+
+======================= morfologik-stemming 1.7.2 =======================
+
+* A quick fix for incorrect decoding of certain suffixes (long suffixes).
+
+* Increased max. recursion level in Speller to 6 from 4. (Jaume Ortolà)
+
+======================= morfologik-stemming 1.7.1 =======================
+
+* Fixed a couple of bugs in morfologik-speller (Jaume Ortolà).
+
+======================= morfologik-stemming 1.7.0 =======================
+
+* Changed DictionaryMetadata API (access methods for encoder/decoder).
+
+* Initial version of morfologik-speller component.
+
+* Minor changes to the FSADumpTool: the header block is always UTF-8
+ encoded, the default platform encoding does not matter. This is done to
+ always support certain attributes that may be unicode (and would be
+ incorrectly dumped otherwise).
+
+* Metadata *.info files can now be encoded in UTF-8 to support text
+ attributes that otherwise would require text2ascii conversion.
+
+======================= morfologik-stemming 1.6.0 =======================
+
+* Update morfologik-polish data to Morfologik 2.0 PoliMorf (08.03.2013).
+ Deprecated DICTIONARY constants (unified dictionary only).
- Cleanups to the tools' launcher -- will complain about missing JARs, if any.
+* Important! The format of encoding tags has changed and is now
+ multiple-tags-per-lemma. The value returned from WordData#getTag
+ may be a number of tags concatenated with a "+" character. Previously
+ the same lamma/stem would be returned multiple times, each time with
+ a different tag.
-1.4.0
- Added FSA5 construction in Java (on byte sequences). Added preliminary support for
- character sequences. Added a command line tool for FSA5
- construction from unsorted data (sorting is done in-memory).
+* Moving code from SourceForge to github.
- Added a tool to encode tab-delimited dictionaries to the format accepted by
- fsa_build and FSA5 construction tool.
+======================= morfologik-stemming 1.5.5 =======================
- Added a new version of Morfologik dictionary for Polish (in CFSA format).
+* Made hppc an optional component of morfologik-fsa. It is required
+ for constructing FSA automata only and causes problems with javac.
+ http://stackoverflow.com/questions/3800462/can-i-prevent-javac-accessing-the-class-path-from-the-manifests-of-our-third-par
-1.3.0
- Added runtime checking for tools availability so that unavailable
- tools don't show up in the list.
+======================= morfologik-stemming 1.5.4 =======================
- Recompressed the built-in Polish dictionary to CFSA.
+* Replaced byte-based speller with CharBasedSpeller.
- Cleaned up FSA/Dictionary separation. FSAs don't store encoding any more (because
- it does not make sense for them to do so). The FSA is a purely abstract class
- pushing functionality to sub-classes. Input stream reading cleaned up.
+* Warn about UTF-8 files with BOM.
+
+* Fixed a typo in package name (speller).
- Added initial code for CFSA (compressed FSA). Reduces automata size about 10%.
+======================= morfologik-stemming 1.5.3 =======================
- Changes in the public API. Implementation classes renamed
- (FSAVer5Impl into FSA5). Major tweaks and tunes to the API.
+* Initial release of spelling correction submodule.
- Added support for version 5 automata built with NUMBERS flag (an extra field
- stored for each node).
+* Updated morfologik-polish data to morfologik 1.9 [12.06.2012]
- ################################################################
- Incompatible API changes have been made in release 1.3.0.
- ################################################################
+* Updated morfologik-polish licensing info to BSD (yay).
-1.2.2 License switch to plain BSD (removed the patent clause which did not make much sense
- anyway).
+======================= morfologik-stemming 1.5.2 =======================
- The build ZIP now includes licenses for individual JARs (prevents confusion).
+* An alternative Polish dictionary added (BSD licensed): SGJP (Morfeusz).
+ PolishStemmer can now take an enum switching between the dictionary to
+ be used or combine both.
-1.2.1 Fixed tool launching routines.
+* Project split into modules. A single jar version (no external
+ dependencies) added by transforming via proguard.
-1.2 Package hierarchy reorganized.
+* Enabled use of escaped special characters in the tab2morph tool.
- Removed stempel (heuristic stemmer for Polish).
+* Added guards against the input term having separator character
+ somewhere (this will now return an empty list of matches). Added
+ getSeparatorChar to DictionaryLookup so that one can check for this
+ condition manually, if needed.
- Code updated to Java 1.5.
+======================= morfologik-stemming 1.5.1 =======================
- The API has changed in many places (enums instead of constants,
- generics, iterables, removed explicit Arc and Node classes and replaced
- by int pointers).
+* Build system switch to Maven (tested with Maven2).
- FSA traversal in version 1.2 is implemented on top of primitive
- data structures (int pointers) to keep memory usage minimal. The speed
- boost gained from this is enormous and justifies less readable code. We
- strongly advise to use the provided iterators and helper functions
- for matching state sequences in the FSA.
+======================= morfologik-stemming 1.5.0 =======================
- Tools updated. Dumping existing FSAs is much, much faster now.
+* Major size saving improvements in CFSA2. Built in Polish dictionary
+ size decreased from 2,811,345 to 1,806,661 (CFSA2 format).
- ################################################################
- Incompatible API changes have been made in release 1.2.
- Java 1.5 or later is required from this version on.
- ################################################################
+* FSABuilder returns a ready-to-be-used FSA (ConstantArcSizeFSA).
+ Construction overhead for this automaton is a round zero (it is
+ immediately serialized in-memory).
-1.1.4 * Fixed a bug that caused UTF-8 dictionaries to be garbled. Now it should be relatively
- safe to use UTF-8 dictionaries (note: separators cannot be multibyte UTF-8 characters,
- yet this is probably a very rare case).
+* Polish dictionary updated to Morfologik 1.7. [19.11.2010]
-1.1.3 * Fixed a bug causing NPE when the library is called with null context class loader
- (happens when JVM is invoked from an JNI-attached thread). Thanks to
- Patrick Luby for report and detailed analysis.
+* Added an option to serialize automaton to CFSA2 or FSA5 directly from
+ fsa_build.
- Updated the built-in dictionary to the newest version available.
+* CFSA is now deprecated for serialization (the code still reads CFSA
+ automata, but will no be able to serialize them). Use CFSA2.
-1.1.2 * Fixed a bug causing JAR file locking (by implementing a workaround).
+* Added immediate state interning. Speedup in automaton construction by
+ about 30%, memory use decreased significantly (did not perform exact
+ measurements, but incremental construction from presorted data should
+ consume way less memory).
- Fixed the build script (manifest file was broken).
+* Added an option to build FSA from already sorted data (--sorted).
+ Avoids in-memory sorting. Pipe the input through shell sort if
+ building FSA from large data.
-1.1.1 Distribution script fixes. The final JAR does not contain test classes and resources. Size
- trimmed almost twice compared to release 1.1.
+* Changed the default ordering from Java signed-byte to C-like unsigned
+ byte value. This lets one use GNU sort to sort the input using
+ 'export LC_ALL=C; sort input'.
- Updated the dump tool to accept dictionary metadata files.
+* Added traversal routines to calculate perfect hashing based on
+ FSA with NUMBERS.
-1.1 Introduced an auxiliary "meta" information files about compressed dictionaries.
- Such information include delimiter symbol, encoding and infix/prefix/postfix
- decoding info.
-
- The API has changed (repackaging). Some deprecated methods have been removed.
- This is a major redesign/ upgrade, you will have to adjust your source code.
+* Changed the order of serialized arcs in the binary serializer for FSA5
+ to lexicographic (consistent with the input). Depth-first traversal
+ recreates the input, in other words.
+
+* Removed character-based automata.
+
+* Incompatible API changes to FSA builders (moved to morfologik.fsa).
+
+* Incompatible API changes to FSATraversalHelper. Cleaned up match
+ types, added unit tests.
+
+* An external dependency HPPC (high performance primitive collections)
+ is now required
+
+======================= morfologik-stemming 1.4.1 =======================
+
+* Upgrade of the built-in Morfologik dictionary for Polish (in CFSA
+ format).
+
+* Added options to define custom FILLER and ANNOT_SEPARATOR bytes in the
+ fsa_build tool.
+
+* Corrected an inconsistency with the C fsa package -- FILLER and
+ ANNOT_SEPARATOR characters are now identical with the C version.
- Cleaned up APIs and interfaces.
+* Cleanups to the tools' launcher -- will complain about missing JARs,
+ if any.
+
+======================= morfologik-stemming 1.4.0 =======================
+
+* Added FSA5 construction in Java (on byte sequences). Added preliminary
+ support for character sequences. Added a command line tool for FSA5
+ construction from unsorted data (sorting is done in-memory).
+
+* Added a tool to encode tab-delimited dictionaries to the format
+ accepted by fsa_build and FSA5 construction tool.
+
+* Added a new version of Morfologik dictionary for Polish (in CFSA format).
+
+======================= morfologik-stemming 1.3.0 =======================
+
+* Added runtime checking for tools availability so that unavailable tools
+ don't show up in the list.
- Added infrastructure for command-line tool launching.
+* Recompressed the built-in Polish dictionary to CFSA.
- Cleaned up tests.
+* Cleaned up FSA/Dictionary separation. FSAs don't store encoding any more
+ (because it does not make sense for them to do so). The FSA is a purely
+ abstract class pushing functionality to sub-classes. Input stream
+ reading cleaned up.
- Changed project name to morfologik-stemmers and ownership to (c) Morfologik.
+* Added initial code for CFSA (compressed FSA). Reduces automata size
+ about 10%.
-1.0.7 Removed one bug in fsa 'compression' decoding.
+* Changes in the public API. Implementation classes renamed (FSAVer5Impl
+ into FSA5). Major tweaks and tunes to the API.
-1.0.6 Customized version of stempel replaced with a standard distribution.
+* Added support for version 5 automata built with NUMBERS flag (an extra
+ field stored for each node).
- Removed deprecated methods and classes.
+======================= morfologik-stemming 1.2.2 =======================
+
+* License switch to plain BSD (removed the patent clause which did not
+ make much sense anyway).
+
+* The build ZIP now includes licenses for individual JARs (prevents
+ confusion).
+
+======================= morfologik-stemming 1.2.1 =======================
+
+* Fixed tool launching routines.
+
+======================= morfologik-stemming 1.2.0 =======================
+
+* Package hierarchy reorganized.
+
+* Removed stempel (heuristic stemmer for Polish).
+
+* Code updated to Java 1.5.
+
+* The API has changed in many places (enums instead of constants,
+ generics, iterables, removed explicit Arc and Node classes and replaced
+ by int pointers).
+
+* FSA traversal in version 1.2 is implemented on top of primitive data
+ structures (int pointers) to keep memory usage minimal. The speed
+ boost gained from this is enormous and justifies less readable code. We
+ strongly advise to use the provided iterators and helper functions
+ for matching state sequences in the FSA.
+
+* Tools updated. Dumping existing FSAs is much, much faster now.
+
+======================= morfologik-stemming 1.1.4 =======================
+
+* Fixed a bug that caused UTF-8 dictionaries to be garbled. Now it
+ should be relatively safe to use UTF-8 dictionaries (note: separators
+ cannot be multibyte UTF-8 characters, yet this is probably a very
+ rare case).
+
+======================= morfologik-stemming 1.1.3 =======================
+
+* Fixed a bug causing NPE when the library is called with null context
+ class loader (happens when JVM is invoked from an JNI-attached
+ thread). Thanks to Patrick Luby for report and detailed analysis.
+
+* Updated the built-in dictionary to the newest version available.
+
+======================= morfologik-stemming 1.1.2 =======================
+
+* Fixed a bug causing JAR file locking (by implementing a workaround).
+
+* Fixed the build script (manifest file was broken).
+
+======================= morfologik-stemming 1.1.1 =======================
+
+* Distribution script fixes. The final JAR does not contain test classes
+ and resources. Size trimmed almost twice compared to release 1.1.
+
+* Updated the dump tool to accept dictionary metadata files.
+
+======================= morfologik-stemming 1.1 =========================
+
+* Introduced an auxiliary "meta" information files about compressed
+ dictionaries. Such information include delimiter symbol, encoding
+ and infix/prefix/postfix decoding info.
+
+* The API has changed (repackaging). Some deprecated methods have been
+ removed. This is a major redesign/ upgrade, you will have to adjust
+ your source code.
+
+* Cleaned up APIs and interfaces.
+
+* Added infrastructure for command-line tool launching.
+
+* Cleaned up tests.
+
+* Changed project name to morfologik-stemmers and ownership to
+ (c) Morfologik.
+
+======================= morfologik-stemming 1.0.7 =======================
+
+* Removed one bug in fsa 'compression' decoding.
+
+======================= morfologik-stemming 1.0.6 =======================
+
+* Customized version of stempel replaced with a standard distribution.
+
+* Removed deprecated methods and classes.
- Added infix and prefix encoding support for fsa dictionaries.
+* Added infix and prefix encoding support for fsa dictionaries.
+
+======================= morfologik-stemming 1.0.5 =======================
-1.0.5 Added filler and separator char dumps to FSADump.
+* Added filler and separator char dumps to FSADump.
- * A major bug in automaton traversal corrected. Upgrade when possible.
+* A major bug in automaton traversal corrected. Upgrade when possible.
- Certain API changes were introduced; older methods are now deprecated
- and will be removed in the future.
+* Certain API changes were introduced; older methods are now deprecated
+ and will be removed in the future.
+
+======================= morfologik-stemming 1.0.4 =======================
+
+* Licenses for full and no-dict versions.
+
+======================= morfologik-stemming 1.0.3 =======================
+
+* Project code moved to SourceForge (subproject of Morfologik).
+ LICENSE CHANGED FROM PUBLIC DOMAIN TO BSD (doesn't change much, but
+ clarifies legal issues).
+
+======================= morfologik-stemming 1.0.2 =======================
-1.0.4 Licenses for full and no-dict versions.
+* Added a Lametyzator constructor which allows custom dictionary stream,
+ field delimiters and encoding. Added an option for building stand-alone
+ JAR that does not include the default polish dictionary.
-1.0.3 Project code moved to SourceForge (subproject of Morfologik).
- LICENSE CHANGED FROM PUBLIC DOMAIN TO BSD (doesn't change much, but clarifies
- legal issues).
+======================= morfologik-stemming 1.0.1 =======================
-1.0.2 Added a Lametyzator constructor which allows custom dictionary stream, field
- delimiters and encoding. Added an option for building stand-alone
- JAR that does not include the default polish dictionary.
+* Code cleanups. Added a method that returns the third automaton's column
+ (form).
-1.0.1 Code cleanups. Added a method that returns the third automaton's column (form).
+======================= morfologik-stemming 1.0 =========================
-1.0 Initial release \ No newline at end of file
+* Initial release
diff --git a/CONTRIBUTOR b/CONTRIBUTOR
new file mode 100644
index 0000000..2e3fa2f
--- /dev/null
+++ b/CONTRIBUTOR
@@ -0,0 +1,62 @@
+
+Compiling
+=========
+
+You will need maven. Then, in the top folder of the checkout:
+
+mvn clean install
+
+or
+
+mvn clean install -Pquick # no tests
+
+
+Eclipse
+=======
+
+We highly recommend using m2eclipse plugin and importing all projects directly
+into Eclipse as Maven projects ("maven nature").
+
+
+Compiling dictionaries
+======================
+
+A pipeline for compiling plain text dictionary data into automata:
+
+1) Prepare tab-delimited input file with the following columns:
+ inflected-form base-form annotation. An example:
+
+niebabińscy niebabiński adj:pl:nom.voc:m1.p1:pos
+niebabińska niebabiński adj:sg:nom.voc:f:pos
+niebabiński niebabiński adj:sg:acc:m3:pos
+
+2) The above tab-delimited input can be preprocessed
+ to conflate shared affixes (helps in subsequent FSA compression):
+
+java -jar morfologik-tools-*-standalone.jar tab2morph --coder INFIX --input ~/tmp/input.txt > intermediate.txt
+
+3) Compile FSA from the intermediate format:
+
+java -jar morfologik-tools-*-standalone.jar fsa_build --input intermediate.txt --progress > output.fsa
+
+4) You should add output.info file specifying character encoding and additional
+ licensing information. See examples (Polish dictionaries).
+
+More info:
+http://languagetool.wikidot.com/developing-a-tagger-dictionary
+
+
+Sonatype/ release push
+======================
+
+# snapshot deploy, create single-JAR version, javadocs, etc.
+mvn clean deploy -Prelease
+
+# ZIP with full release artifacts
+mvn clean deploy -Prelease,distribution
+
+# ZIP with full release artifacts for sourceforge.net
+mvn clean install -Prelease,distribution
+
+# For final releases, GPG sign.
+mvn clean deploy -Prelease,distribution,sign
diff --git a/README b/README
index 4ce3038..50a7d1b 100644..100755
--- a/README
+++ b/README
@@ -1,33 +1,62 @@
-CONTENTS
---------
+MORFOLOGIK
+==========
+
+FSA (automata), stemming, dictionaries and tools. Tools quickstart:
+
+java -jar lib/morfologik-tools-${version}-standalone.jar
+
+
+MODULES
+=======
This project provides:
- - Finite state automaton traversal routines for Jan Daciuk's FSA package.
-
+morfologik-fsa:
+
- Creation of byte-based, efficient finite state automata in Java, including
- custom, efficient data storage formats (not compatible with Daciuk's FSA package).
+ custom, efficient data storage formats.
+
+ - Compatibility with FSA5, binary format of finite state automata produced by
+ Jan Daciuk's "fsa" package.
+
+morfologik-stemming:
- - A stemming engine for the Polish language built on top of a large dictionary
- of inflected forms, stems and grammatical annotations.
+ - FSA-based stemming interfaces and dictionary metadata.
-There are a few command-line tools you may find useful. Type:
+morfologik-polish:
- java -jar morfologik-stemming-*.jar
+ - Precompiled dictionary of inflected forms, stems and tags for the Polish
+ language built on top of a large dictionary.
-for an up-to-date list of all tools.
+morfologik-tools:
+
+ - Command line tools to preprocess, build and dump FSA automata and dictionaries.
+
+ - There are a few command-line tools you may find useful. Type:
+ java -jar lib/morfologik-tools-${version}.jar
+ for an up-to-date list of all tools.
+
+morfologik-speller:
+
+ - Simplistic automaton-based spelling correction (suggester).
AUTHORS
=======
-Marcin Miłkowski (http://marcinmilkowski.pl) [linguistic data lead]
-Dawid Weiss (http://www.dawidweiss.com) [fsa lead]
-Grzegorz SÅ‚owikowski [maven bundles maintenance]
+Marcin Miłkowski (http://marcinmilkowski.pl) [linguistic data lead, code]
+Dawid Weiss (http://www.dawidweiss.com) [fsa lead, code]
+
+
+CONTRIBUTORS
+============
+
+Grzegorz SÅ‚owikowski [initial maven configs]
QUESTIONS, COMMENTS
===================
-www.morfologik.blogspot.com
+Web site: http://www.morfologik.blogspot.com
+Mailing list: morfologik-devel@lists.sourceforge.net
diff --git a/TODO b/TODO
index eed30fd..e69de29 100644
--- a/TODO
+++ b/TODO
@@ -1,21 +0,0 @@
-
-BUGS?
-
-
-NEXT MAJOR VERSION
-
-- New binary automaton format;
- - allow direct arc lookup on highly fanning nodes, especially root nodes
- - allow direct perf. hashing number on arcs of highly fanning nodes, especially root nodes
- - variable coding for state numbers
- - state flags to encode single-arc-final tails in a compact form (no arcs at all?).
-
-
-NOT EVEN SCHEDULED
-
-- Add arc reuse (optimisation).
-
-- Add a set of utility classes for parsing morphological tags. This could be similar
- (or even compatible?) with Morfeusz-Java.
-
-- Suggest and implement a new stemming heuristic based on inflection frames.
diff --git a/build.xml b/build.xml
deleted file mode 100644
index 5961525..0000000
--- a/build.xml
+++ /dev/null
@@ -1,219 +0,0 @@
-<project name="morfologik-stemming" default="build">
- <property name="build.name" value="morfologik-stemming" />
- <property name="build.ver" value="1.5.0" />
-
- <property name="tmp.dir" value="tmp" />
- <property name="build.dir" value="${tmp.dir}/build" />
- <property name="build.test.dir" value="${tmp.dir}/test" />
- <property name="dist.dir" value="dist" />
-
- <property name="jarfile-nodict" value="${tmp.dir}/bin/${build.name}-nodict-${build.ver}.jar" />
- <property name="jarfile" value="${tmp.dir}/bin/${build.name}-${build.ver}.jar" />
-
- <property name="srczip" value="${dist.dir}/${build.name}-${build.ver}-src.zip" />
- <property name="binzip" value="${dist.dir}/${build.name}-${build.ver}.zip" />
-
- <presetdef name="javac">
- <javac deprecation="false" debug="true" target="1.6" source="1.6"
- encoding="UTF-8" includeantruntime="false" />
- </presetdef>
-
- <path id="compile.classpath">
- <fileset dir="lib">
- <include name="**/*.jar" />
- </fileset>
- </path>
-
- <fileset dir="lib" id="runtime.dependencies">
- <include name="**/*.jar" />
- <exclude name="junit*.jar" />
- </fileset>
-
-
- <target name="init">
- <tstamp />
- <mkdir dir="${build.dir}" />
- <mkdir dir="${build.test.dir}" />
- </target>
-
-
-
- <target name="clean">
- <delete dir="${build.dir}" failonerror="false" />
- <delete dir="${dist.dir}" failonerror="false" />
- <delete dir="target" failonerror="false" />
- <delete dir="${tmp.dir}" failonerror="false">
- <exclude name="eclipse/**" />
- </delete>
- </target>
-
-
-
- <target name="compile" depends="init">
- <javac classpath="${classpath}" destdir="${build.dir}">
- <classpath refid="compile.classpath" />
- <include name="**/*.java" />
- <src location="src" />
- </javac>
-
- <!-- Copy additional resources to the build folder. -->
- <copy todir="${build.dir}">
- <fileset dir="src">
- <exclude name="**/*.java" />
- </fileset>
- </copy>
- </target>
-
-
-
- <target name="compile.test" depends="init,compile">
- <javac classpath="${classpath}" destdir="${build.test.dir}">
- <classpath refid="compile.classpath" />
- <classpath location="${build.dir}" />
-
- <src location="src-test" />
- </javac>
-
- <!-- Copy additional resources to the build folder. -->
- <copy todir="${build.test.dir}">
- <fileset dir="src-test">
- <exclude name="**/*.java" />
- </fileset>
- </copy>
- </target>
-
-
-
- <target name="test" depends="compile, compile.test">
- <mkdir dir="${tmp.dir}/tests" />
- <junit printsummary="yes" haltonfailure="yes" maxmemory="256m" forkmode="once" fork="true">
- <classpath refid="compile.classpath" />
- <classpath location="${build.dir}" />
- <classpath location="${build.test.dir}" />
-
- <jvmarg value="-ea" />
-
- <formatter type="plain" />
-
- <batchtest todir="${tmp.dir}/tests">
- <fileset dir="src-test">
- <include name="**/*Test.java" />
- </fileset>
- </batchtest>
- </junit>
- </target>
-
-
-
- <target name="javadoc" depends="init">
- <javadoc sourcepath="src" packagenames="morfologik.*" destdir="${tmp.dir}/javadoc">
- <classpath refid="compile.classpath" />
- </javadoc>
- </target>
-
-
-
- <target name="jar" depends="clean, compile, licenses">
- <mkdir dir="${tmp.dir}/bin" />
-
- <property name="main.class" value="morfologik.tools.Launcher" />
-
- <pathconvert property="manifest.classpath" pathsep=" ">
- <flattenmapper />
- <path>
- <fileset refid="runtime.dependencies" />
- </path>
- </pathconvert>
-
- <jar jarfile="${jarfile}">
- <fileset dir="${build.dir}" />
- <zipfileset file="${tmp.dir}/licenses/morfologik-stemming.LICENSE" fullpath="META-INF/Morfologik.LICENSE" />
- <manifest>
- <attribute name="Main-Class" value="${main.class}" />
- <attribute name="Class-Path" value="${manifest.classpath}" />
- </manifest>
- </jar>
-
- <jar jarfile="${jarfile-nodict}">
- <fileset dir="${build.dir}">
- <exclude name="morfologik/dictionaries/**" />
- </fileset>
- <zipfileset file="${tmp.dir}/licenses/morfologik-stemming-nodict.LICENSE" fullpath="META-INF/Morfologik.LICENSE" />
- <manifest>
- <attribute name="Main-Class" value="${main.class}" />
- <attribute name="Class-Path" value="${manifest.classpath}" />
- </manifest>
- </jar>
- </target>
-
-
-
- <target name="build" depends="jar">
- <copy todir="${tmp.dir}/bin">
- <fileset refid="runtime.dependencies" />
- <fileset dir="lib" includes="*.LICENSE" excludes="junit*" />
- <fileset dir=".">
- <include name="LICENSE*.txt" />
- <include name="README.txt" />
- <include name="version.txt" />
- </fileset>
- </copy>
- </target>
-
-
-
- <target name="dist" depends="clean, test, build, javadoc, licenses">
- <mkdir dir="${dist.dir}" />
-
- <!-- Package source distribution -->
- <fileset dir="." id="srcdistfiles">
- <exclude name="tmp/**" />
- <exclude name="dist/**" />
- <exclude name=".settings/**" />
- <exclude name=".git/**" />
- <exclude name="${srczip}" />
- </fileset>
-
- <zip destfile="${srczip}">
- <fileset refid="srcdistfiles" />
- <zipfileset prefix="doc/api" dir="${tmp.dir}/javadoc" />
- </zip>
-
- <zip destfile="${binzip}">
- <fileset dir="${tmp.dir}/bin" />
- <zipfileset prefix="api" dir="${tmp.dir}/javadoc" />
-
- <!-- Include licenses. -->
- <zipfileset dir="${tmp.dir}/licenses" />
- </zip>
- </target>
-
-
-
- <target name="licenses">
- <delete dir="${tmp.dir}/licenses" />
- <mkdir dir="${tmp.dir}/licenses" />
-
- <echo file="${tmp.dir}/licenses/delim">
-
----
-
-</echo>
-
- <concat append="false" destfile="${tmp.dir}/licenses/morfologik-stemming-nodict.LICENSE">
- <path>
- <pathelement location="LICENSE" />
- </path>
- </concat>
-
- <concat append="false" destfile="${tmp.dir}/licenses/morfologik-stemming.LICENSE">
- <path>
- <pathelement location="LICENSE" />
- <pathelement location="${tmp.dir}/licenses/delim" />
- <pathelement location="src/morfologik/dictionaries/pl.LICENSE" />
- </path>
- </concat>
-
- <delete file="${tmp.dir}/licenses/delim" />
- </target>
-</project>
diff --git a/doc/api/allclasses-frame.html b/doc/api/allclasses-frame.html
deleted file mode 100644
index 876e191..0000000
--- a/doc/api/allclasses-frame.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-All Classes
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B>All Classes</B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="morfologik/util/Arrays.html" title="class in morfologik.util" target="classFrame">Arrays</A>
-<BR>
-<A HREF="morfologik/util/BufferUtils.html" title="class in morfologik.util" target="classFrame">BufferUtils</A>
-<BR>
-<A HREF="morfologik/fsa/CFSA.html" title="class in morfologik.fsa" target="classFrame">CFSA</A>
-<BR>
-<A HREF="morfologik/fsa/CFSA2.html" title="class in morfologik.fsa" target="classFrame">CFSA2</A>
-<BR>
-<A HREF="morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa" target="classFrame">CFSA2Serializer</A>
-<BR>
-<A HREF="morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa" target="classFrame">ConstantArcSizeFSA</A>
-<BR>
-<A HREF="morfologik/stemming/Dictionary.html" title="class in morfologik.stemming" target="classFrame">Dictionary</A>
-<BR>
-<A HREF="morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming" target="classFrame">DictionaryIterator</A>
-<BR>
-<A HREF="morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming" target="classFrame">DictionaryLookup</A>
-<BR>
-<A HREF="morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming" target="classFrame">DictionaryMetadata</A>
-<BR>
-<A HREF="morfologik/util/FileUtils.html" title="class in morfologik.util" target="classFrame">FileUtils</A>
-<BR>
-<A HREF="morfologik/fsa/FSA.html" title="class in morfologik.fsa" target="classFrame">FSA</A>
-<BR>
-<A HREF="morfologik/fsa/FSA5.html" title="class in morfologik.fsa" target="classFrame">FSA5</A>
-<BR>
-<A HREF="morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa" target="classFrame">FSA5Serializer</A>
-<BR>
-<A HREF="morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa" target="classFrame">FSABuilder</A>
-<BR>
-<A HREF="morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa" target="classFrame">FSABuilder.InfoEntry</A>
-<BR>
-<A HREF="morfologik/tools/FSABuildTool.html" title="class in morfologik.tools" target="classFrame">FSABuildTool</A>
-<BR>
-<A HREF="morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools" target="classFrame">FSABuildTool.Format</A>
-<BR>
-<A HREF="morfologik/tools/FSADumpTool.html" title="class in morfologik.tools" target="classFrame">FSADumpTool</A>
-<BR>
-<A HREF="morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa" target="classFrame">FSAFinalStatesIterator</A>
-<BR>
-<A HREF="morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa" target="classFrame">FSAFlags</A>
-<BR>
-<A HREF="morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa" target="classFrame">FSAInfo</A>
-<BR>
-<A HREF="morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa" target="classFrame"><I>FSASerializer</I></A>
-<BR>
-<A HREF="morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa" target="classFrame">FSATraversal</A>
-<BR>
-<A HREF="morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa" target="classFrame">FSAUtils</A>
-<BR>
-<A HREF="morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa" target="classFrame">FSAUtils.IntIntHolder</A>
-<BR>
-<A HREF="morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools" target="classFrame"><I>IMessageLogger</I></A>
-<BR>
-<A HREF="morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools" target="classFrame">InflectionFramesTool</A>
-<BR>
-<A HREF="morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming" target="classFrame"><I>IStemmer</I></A>
-<BR>
-<A HREF="morfologik/tools/Launcher.html" title="class in morfologik.tools" target="classFrame">Launcher</A>
-<BR>
-<A HREF="morfologik/fsa/MatchResult.html" title="class in morfologik.fsa" target="classFrame">MatchResult</A>
-<BR>
-<A HREF="morfologik/tools/MorphEncoder.html" title="class in morfologik.tools" target="classFrame">MorphEncoder</A>
-<BR>
-<A HREF="morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming" target="classFrame">PolishStemmer</A>
-<BR>
-<A HREF="morfologik/util/ResourceUtils.html" title="class in morfologik.util" target="classFrame">ResourceUtils</A>
-<BR>
-<A HREF="morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa" target="classFrame"><I>StateVisitor</I></A>
-<BR>
-<A HREF="morfologik/stemming/WordData.html" title="class in morfologik.stemming" target="classFrame">WordData</A>
-<BR>
-<A HREF="morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools" target="classFrame">WriterMessageLogger</A>
-<BR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/api/allclasses-noframe.html b/doc/api/allclasses-noframe.html
deleted file mode 100644
index 50dcd62..0000000
--- a/doc/api/allclasses-noframe.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-All Classes
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B>All Classes</B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="morfologik/util/Arrays.html" title="class in morfologik.util">Arrays</A>
-<BR>
-<A HREF="morfologik/util/BufferUtils.html" title="class in morfologik.util">BufferUtils</A>
-<BR>
-<A HREF="morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<BR>
-<A HREF="morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<BR>
-<A HREF="morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A>
-<BR>
-<A HREF="morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<BR>
-<A HREF="morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<BR>
-<A HREF="morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming">DictionaryIterator</A>
-<BR>
-<A HREF="morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming">DictionaryLookup</A>
-<BR>
-<A HREF="morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<BR>
-<A HREF="morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A>
-<BR>
-<A HREF="morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<BR>
-<A HREF="morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<BR>
-<A HREF="morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A>
-<BR>
-<A HREF="morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A>
-<BR>
-<A HREF="morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>
-<BR>
-<A HREF="morfologik/tools/FSABuildTool.html" title="class in morfologik.tools">FSABuildTool</A>
-<BR>
-<A HREF="morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A>
-<BR>
-<A HREF="morfologik/tools/FSADumpTool.html" title="class in morfologik.tools">FSADumpTool</A>
-<BR>
-<A HREF="morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa">FSAFinalStatesIterator</A>
-<BR>
-<A HREF="morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>
-<BR>
-<A HREF="morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa">FSAInfo</A>
-<BR>
-<A HREF="morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa"><I>FSASerializer</I></A>
-<BR>
-<A HREF="morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa">FSATraversal</A>
-<BR>
-<A HREF="morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa">FSAUtils</A>
-<BR>
-<A HREF="morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa">FSAUtils.IntIntHolder</A>
-<BR>
-<A HREF="morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools"><I>IMessageLogger</I></A>
-<BR>
-<A HREF="morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools">InflectionFramesTool</A>
-<BR>
-<A HREF="morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming"><I>IStemmer</I></A>
-<BR>
-<A HREF="morfologik/tools/Launcher.html" title="class in morfologik.tools">Launcher</A>
-<BR>
-<A HREF="morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>
-<BR>
-<A HREF="morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<BR>
-<A HREF="morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming">PolishStemmer</A>
-<BR>
-<A HREF="morfologik/util/ResourceUtils.html" title="class in morfologik.util">ResourceUtils</A>
-<BR>
-<A HREF="morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa"><I>StateVisitor</I></A>
-<BR>
-<A HREF="morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>
-<BR>
-<A HREF="morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools">WriterMessageLogger</A>
-<BR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-</BODY>
-</HTML>
diff --git a/doc/api/constant-values.html b/doc/api/constant-values.html
deleted file mode 100644
index e296aa0..0000000
--- a/doc/api/constant-values.html
+++ /dev/null
@@ -1,446 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-Constant Field Values
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Constant Field Values";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H1>
-Constant Field Values</H1>
-</CENTER>
-<HR SIZE="4" NOSHADE>
-<B>Contents</B><UL>
-<LI><A HREF="#morfologik.fsa">morfologik.fsa.*</A>
-<LI><A HREF="#morfologik.stemming">morfologik.stemming.*</A>
-</UL>
-
-<A NAME="morfologik.fsa"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left"><FONT SIZE="+2">
-morfologik.fsa.*</FONT></TH>
-</TR>
-</TABLE>
-
-<P>
-
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="3">morfologik.fsa.<A HREF="morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.CFSA.BIT_FINAL_ARC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/CFSA.html#BIT_FINAL_ARC">BIT_FINAL_ARC</A></CODE></TD>
-<TD ALIGN="right"><CODE>1</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.CFSA.BIT_LAST_ARC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/CFSA.html#BIT_LAST_ARC">BIT_LAST_ARC</A></CODE></TD>
-<TD ALIGN="right"><CODE>2</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.CFSA.BIT_TARGET_NEXT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/CFSA.html#BIT_TARGET_NEXT">BIT_TARGET_NEXT</A></CODE></TD>
-<TD ALIGN="right"><CODE>4</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.CFSA.VERSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/CFSA.html#VERSION">VERSION</A></CODE></TD>
-<TD ALIGN="right"><CODE>-59</CODE></TD>
-</TR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<P>
-
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="3">morfologik.fsa.<A HREF="morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.CFSA2.BIT_FINAL_ARC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/CFSA2.html#BIT_FINAL_ARC">BIT_FINAL_ARC</A></CODE></TD>
-<TD ALIGN="right"><CODE>32</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.CFSA2.BIT_LAST_ARC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/CFSA2.html#BIT_LAST_ARC">BIT_LAST_ARC</A></CODE></TD>
-<TD ALIGN="right"><CODE>64</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.CFSA2.BIT_TARGET_NEXT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/CFSA2.html#BIT_TARGET_NEXT">BIT_TARGET_NEXT</A></CODE></TD>
-<TD ALIGN="right"><CODE>128</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.CFSA2.VERSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/CFSA2.html#VERSION">VERSION</A></CODE></TD>
-<TD ALIGN="right"><CODE>-58</CODE></TD>
-</TR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<P>
-
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="3">morfologik.fsa.<A HREF="morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.ConstantArcSizeFSA.ADDRESS_OFFSET"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/ConstantArcSizeFSA.html#ADDRESS_OFFSET">ADDRESS_OFFSET</A></CODE></TD>
-<TD ALIGN="right"><CODE>2</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.ConstantArcSizeFSA.ARC_SIZE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/ConstantArcSizeFSA.html#ARC_SIZE">ARC_SIZE</A></CODE></TD>
-<TD ALIGN="right"><CODE>6</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.ConstantArcSizeFSA.BIT_ARC_FINAL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/ConstantArcSizeFSA.html#BIT_ARC_FINAL">BIT_ARC_FINAL</A></CODE></TD>
-<TD ALIGN="right"><CODE>2</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.ConstantArcSizeFSA.BIT_ARC_LAST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/ConstantArcSizeFSA.html#BIT_ARC_LAST">BIT_ARC_LAST</A></CODE></TD>
-<TD ALIGN="right"><CODE>1</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.ConstantArcSizeFSA.FLAGS_OFFSET"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/ConstantArcSizeFSA.html#FLAGS_OFFSET">FLAGS_OFFSET</A></CODE></TD>
-<TD ALIGN="right"><CODE>0</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.ConstantArcSizeFSA.FLAGS_SIZE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/ConstantArcSizeFSA.html#FLAGS_SIZE">FLAGS_SIZE</A></CODE></TD>
-<TD ALIGN="right"><CODE>1</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.ConstantArcSizeFSA.LABEL_OFFSET"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/ConstantArcSizeFSA.html#LABEL_OFFSET">LABEL_OFFSET</A></CODE></TD>
-<TD ALIGN="right"><CODE>1</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.ConstantArcSizeFSA.LABEL_SIZE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/ConstantArcSizeFSA.html#LABEL_SIZE">LABEL_SIZE</A></CODE></TD>
-<TD ALIGN="right"><CODE>1</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.ConstantArcSizeFSA.TARGET_ADDRESS_SIZE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/ConstantArcSizeFSA.html#TARGET_ADDRESS_SIZE">TARGET_ADDRESS_SIZE</A></CODE></TD>
-<TD ALIGN="right"><CODE>4</CODE></TD>
-</TR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<P>
-
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="3">morfologik.fsa.<A HREF="morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.FSA5.ADDRESS_OFFSET"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/FSA5.html#ADDRESS_OFFSET">ADDRESS_OFFSET</A></CODE></TD>
-<TD ALIGN="right"><CODE>1</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.FSA5.BIT_FINAL_ARC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/FSA5.html#BIT_FINAL_ARC">BIT_FINAL_ARC</A></CODE></TD>
-<TD ALIGN="right"><CODE>1</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.FSA5.BIT_LAST_ARC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/FSA5.html#BIT_LAST_ARC">BIT_LAST_ARC</A></CODE></TD>
-<TD ALIGN="right"><CODE>2</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.FSA5.BIT_TARGET_NEXT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/FSA5.html#BIT_TARGET_NEXT">BIT_TARGET_NEXT</A></CODE></TD>
-<TD ALIGN="right"><CODE>4</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.FSA5.DEFAULT_ANNOTATION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/FSA5.html#DEFAULT_ANNOTATION">DEFAULT_ANNOTATION</A></CODE></TD>
-<TD ALIGN="right"><CODE>43</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.FSA5.DEFAULT_FILLER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/FSA5.html#DEFAULT_FILLER">DEFAULT_FILLER</A></CODE></TD>
-<TD ALIGN="right"><CODE>95</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.FSA5.VERSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/FSA5.html#VERSION">VERSION</A></CODE></TD>
-<TD ALIGN="right"><CODE>5</CODE></TD>
-</TR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<P>
-
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="3">morfologik.fsa.<A HREF="morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.MatchResult.AUTOMATON_HAS_PREFIX"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/MatchResult.html#AUTOMATON_HAS_PREFIX">AUTOMATON_HAS_PREFIX</A></CODE></TD>
-<TD ALIGN="right"><CODE>-3</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.MatchResult.EXACT_MATCH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/MatchResult.html#EXACT_MATCH">EXACT_MATCH</A></CODE></TD>
-<TD ALIGN="right"><CODE>0</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.MatchResult.NO_MATCH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/MatchResult.html#NO_MATCH">NO_MATCH</A></CODE></TD>
-<TD ALIGN="right"><CODE>-1</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.fsa.MatchResult.SEQUENCE_IS_A_PREFIX"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/fsa/MatchResult.html#SEQUENCE_IS_A_PREFIX">SEQUENCE_IS_A_PREFIX</A></CODE></TD>
-<TD ALIGN="right"><CODE>-4</CODE></TD>
-</TR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<P>
-<A NAME="morfologik.stemming"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left"><FONT SIZE="+2">
-morfologik.stemming.*</FONT></TH>
-</TR>
-</TABLE>
-
-<P>
-
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="3">morfologik.stemming.<A HREF="morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.stemming.Dictionary.METADATA_FILE_EXTENSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/stemming/Dictionary.html#METADATA_FILE_EXTENSION">METADATA_FILE_EXTENSION</A></CODE></TD>
-<TD ALIGN="right"><CODE>"info"</CODE></TD>
-</TR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<P>
-
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left" COLSPAN="3">morfologik.stemming.<A HREF="morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.stemming.DictionaryMetadata.ATTR_NAME_ENCODING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_ENCODING">ATTR_NAME_ENCODING</A></CODE></TD>
-<TD ALIGN="right"><CODE>"fsa.dict.encoding"</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.stemming.DictionaryMetadata.ATTR_NAME_SEPARATOR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_SEPARATOR">ATTR_NAME_SEPARATOR</A></CODE></TD>
-<TD ALIGN="right"><CODE>"fsa.dict.separator"</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.stemming.DictionaryMetadata.ATTR_NAME_USES_INFIXES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_USES_INFIXES">ATTR_NAME_USES_INFIXES</A></CODE></TD>
-<TD ALIGN="right"><CODE>"fsa.dict.uses-infixes"</CODE></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<A NAME="morfologik.stemming.DictionaryMetadata.ATTR_NAME_USES_PREFIXES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
-<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
-<TD ALIGN="left"><CODE><A HREF="morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_USES_PREFIXES">ATTR_NAME_USES_PREFIXES</A></CODE></TD>
-<TD ALIGN="right"><CODE>"fsa.dict.uses-prefixes"</CODE></TD>
-</TR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<P>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/deprecated-list.html b/doc/api/deprecated-list.html
deleted file mode 100644
index 2b4b8b8..0000000
--- a/doc/api/deprecated-list.html
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-Deprecated List
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Deprecated List";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Deprecated API</B></H2>
-</CENTER>
-<HR SIZE="4" NOSHADE>
-<B>Contents</B><UL>
-</UL>
-
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/help-doc.html b/doc/api/help-doc.html
deleted file mode 100644
index 16c5ae3..0000000
--- a/doc/api/help-doc.html
+++ /dev/null
@@ -1,217 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-API Help
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="API Help";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H1>
-How This API Document Is Organized</H1>
-</CENTER>
-This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
-Overview</H3>
-<BLOCKQUOTE>
-
-<P>
-The <A HREF="overview-summary.html">Overview</A> page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.</BLOCKQUOTE>
-<H3>
-Package</H3>
-<BLOCKQUOTE>
-
-<P>
-Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
-<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
-</BLOCKQUOTE>
-<H3>
-Class/Interface</H3>
-<BLOCKQUOTE>
-
-<P>
-Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
-<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
-<P>
-<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
-<P>
-<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
-Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
-</BLOCKQUOTE>
-<H3>
-Annotation Type</H3>
-<BLOCKQUOTE>
-
-<P>
-Each annotation type has its own separate page with the following sections:<UL>
-<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
-</BLOCKQUOTE>
-</BLOCKQUOTE>
-<H3>
-Enum</H3>
-<BLOCKQUOTE>
-
-<P>
-Each enum has its own separate page with the following sections:<UL>
-<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
-</BLOCKQUOTE>
-<H3>
-Tree (Class Hierarchy)</H3>
-<BLOCKQUOTE>
-There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
-<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
-</BLOCKQUOTE>
-<H3>
-Deprecated API</H3>
-<BLOCKQUOTE>
-The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
-<H3>
-Index</H3>
-<BLOCKQUOTE>
-The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
-<H3>
-Prev/Next</H3>
-These links take you to the next or previous class, interface, package, or related page.<H3>
-Frames/No Frames</H3>
-These links show and hide the HTML frames. All pages are available with or without frames.
-<P>
-<H3>
-Serialized Form</H3>
-Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
-<P>
-<H3>
-Constant Field Values</H3>
-The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
-<P>
-<FONT SIZE="-1">
-<EM>
-This help file applies to API documentation generated using the standard doclet.</EM>
-</FONT>
-<BR>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/index-all.html b/doc/api/index-all.html
deleted file mode 100644
index 6ae27f4..0000000
--- a/doc/api/index-all.html
+++ /dev/null
@@ -1,1211 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-Index
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Index";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <HR>
-<A NAME="_A_"><!-- --></A><H2>
-<B>A</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/FSAUtils.IntIntHolder.html#a"><B>a</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa">FSAUtils.IntIntHolder</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/StateVisitor.html#accept(int)"><B>accept(int)</B></A> -
-Method in interface morfologik.fsa.<A HREF="./morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSABuilder.html#add(byte[], int, int)"><B>add(byte[], int, int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A>
-<DD>Add a single sequence of bytes to the FSA.
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#ADDRESS_OFFSET"><B>ADDRESS_OFFSET</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>Offset of the address field inside an arc.
-<DT><A HREF="./morfologik/fsa/FSA5.html#ADDRESS_OFFSET"><B>ADDRESS_OFFSET</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>An offset in the arc structure, where the address and flags field begins.
-<DT><A HREF="./morfologik/fsa/FSA5.html#annotation"><B>annotation</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Annotation character.
-<DT><A HREF="./morfologik/fsa/FSA5Serializer.html#annotationByte"><B>annotationByte</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#ARC_SIZE"><B>ARC_SIZE</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>Size of a single arc structure.
-<DT><A HREF="./morfologik/fsa/CFSA.html#arcs"><B>arcs</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>An array of bytes with the internal representation of the automaton.
-<DT><A HREF="./morfologik/fsa/CFSA2.html#arcs"><B>arcs</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>An array of bytes with the internal representation of the automaton.
-<DT><A HREF="./morfologik/fsa/FSA5.html#arcs"><B>arcs</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>An array of bytes with the internal representation of the automaton.
-<DT><A HREF="./morfologik/fsa/FSAInfo.html#arcsCount"><B>arcsCount</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa">FSAInfo</A>
-<DD>Number of arcs in the automaton, excluding an arcs from the zero node
- (initial) and an arc from the start node to the root node.
-<DT><A HREF="./morfologik/fsa/FSAInfo.html#arcsCountTotal"><B>arcsCountTotal</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa">FSAInfo</A>
-<DD>Total number of arcs, counting arcs that physically overlap due to
- merging.
-<DT><A HREF="./morfologik/util/Arrays.html" title="class in morfologik.util"><B>Arrays</B></A> - Class in <A HREF="./morfologik/util/package-summary.html">morfologik.util</A><DD>Compatibility layer for JVM 1.5.<DT><A HREF="./morfologik/util/FileUtils.html#assertExists(java.io.File, boolean, boolean)"><B>assertExists(File, boolean, boolean)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A>
-<DD>Checks if the given file exists.
-<DT><A HREF="./morfologik/fsa/FSAFlags.html#asShort(java.util.Set)"><B>asShort(Set&lt;FSAFlags&gt;)</B></A> -
-Static method in enum morfologik.fsa.<A HREF="./morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>
-<DD>Returns the set of flags encoded in a single short.
-<DT><A HREF="./morfologik/tools/MorphEncoder.html#asString(byte[], java.lang.String)"><B>asString(byte[], String)</B></A> -
-Static method in class morfologik.tools.<A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<DD>Converts a byte array to a given encoding.
-<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_ENCODING"><B>ATTR_NAME_ENCODING</B></A> -
-Static variable in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<DD>Attribute name for <A HREF="./morfologik/stemming/DictionaryMetadata.html#encoding"><CODE>DictionaryMetadata.encoding</CODE></A>.
-<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_SEPARATOR"><B>ATTR_NAME_SEPARATOR</B></A> -
-Static variable in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<DD>Attribute name for <A HREF="./morfologik/stemming/DictionaryMetadata.html#separator"><CODE>DictionaryMetadata.separator</CODE></A>.
-<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_USES_INFIXES"><B>ATTR_NAME_USES_INFIXES</B></A> -
-Static variable in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<DD>Attribute name for <A HREF="./morfologik/stemming/DictionaryMetadata.html#usesInfixes"><CODE>DictionaryMetadata.usesInfixes</CODE></A>.
-<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_USES_PREFIXES"><B>ATTR_NAME_USES_PREFIXES</B></A> -
-Static variable in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<DD>Attribute name for <A HREF="./morfologik/stemming/DictionaryMetadata.html#usesPrefixes"><CODE>DictionaryMetadata.usesPrefixes</CODE></A>.
-<DT><A HREF="./morfologik/fsa/MatchResult.html#AUTOMATON_HAS_PREFIX"><B>AUTOMATON_HAS_PREFIX</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>
-<DD>The automaton contains a prefix of the input sequence.
-</DL>
-<HR>
-<A NAME="_B_"><!-- --></A><H2>
-<B>B</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/FSAUtils.IntIntHolder.html#b"><B>b</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa">FSAUtils.IntIntHolder</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#BIT_ARC_FINAL"><B>BIT_ARC_FINAL</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>An arc flag indicating the target node of an arc corresponds to a final
- state.
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#BIT_ARC_LAST"><B>BIT_ARC_LAST</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>An arc flag indicating the arc is last within its state.
-<DT><A HREF="./morfologik/fsa/CFSA.html#BIT_FINAL_ARC"><B>BIT_FINAL_ARC</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Bitmask indicating that an arc corresponds to the last character of a
- sequence available when building the automaton.
-<DT><A HREF="./morfologik/fsa/CFSA2.html#BIT_FINAL_ARC"><B>BIT_FINAL_ARC</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>The arc corresponds to the last character of a sequence
- available when building the automaton (acceptor transition).
-<DT><A HREF="./morfologik/fsa/FSA5.html#BIT_FINAL_ARC"><B>BIT_FINAL_ARC</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Bit indicating that an arc corresponds to the last character of a
- sequence available when building the automaton.
-<DT><A HREF="./morfologik/fsa/CFSA.html#BIT_LAST_ARC"><B>BIT_LAST_ARC</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Bitmask indicating that an arc is the last one of the node's list and the
- following one belongs to another node.
-<DT><A HREF="./morfologik/fsa/CFSA2.html#BIT_LAST_ARC"><B>BIT_LAST_ARC</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>The arc is the last one from the current node's arcs list.
-<DT><A HREF="./morfologik/fsa/FSA5.html#BIT_LAST_ARC"><B>BIT_LAST_ARC</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Bit indicating that an arc is the last one of the node's list and the
- following one belongs to another node.
-<DT><A HREF="./morfologik/fsa/CFSA.html#BIT_TARGET_NEXT"><B>BIT_TARGET_NEXT</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Bitmask indicating that the target node of this arc follows it in the
- compressed automaton structure (no goto field).
-<DT><A HREF="./morfologik/fsa/CFSA2.html#BIT_TARGET_NEXT"><B>BIT_TARGET_NEXT</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>The target node of this arc follows the last arc of the current state
- (no goto field).
-<DT><A HREF="./morfologik/fsa/FSA5.html#BIT_TARGET_NEXT"><B>BIT_TARGET_NEXT</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Bit indicating that the target node of this arc follows it in the
- compressed automaton structure (no goto field).
-<DT><A HREF="./morfologik/fsa/FSAFlags.html#bits"><B>bits</B></A> -
-Variable in enum morfologik.fsa.<A HREF="./morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>
-<DD>Bit mask for the corresponding flag.
-<DT><A HREF="./morfologik/util/BufferUtils.html" title="class in morfologik.util"><B>BufferUtils</B></A> - Class in <A HREF="./morfologik/util/package-summary.html">morfologik.util</A><DD>Utility functions for buffers.<DT><A HREF="./morfologik/fsa/FSABuilder.html#build(byte[][])"><B>build(byte[][])</B></A> -
-Static method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A>
-<DD>Build a minimal, deterministic automaton from a sorted list of byte sequences.
-<DT><A HREF="./morfologik/fsa/FSABuilder.html#build(java.lang.Iterable)"><B>build(Iterable&lt;byte[]&gt;)</B></A> -
-Static method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A>
-<DD>Build a minimal, deterministic automaton from an iterable list of byte sequences.
-</DL>
-<HR>
-<A NAME="_C_"><!-- --></A><H2>
-<B>C</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/FSAUtils.html#calculateFanOuts(morfologik.fsa.FSA, int)"><B>calculateFanOuts(FSA, int)</B></A> -
-Static method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa">FSAUtils</A>
-<DD>Calculate fan-out ratio.
-<DT><A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa"><B>CFSA</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>CFSA (Compact Finite State Automaton) binary format implementation.<DT><A HREF="./morfologik/fsa/CFSA.html#CFSA(java.io.InputStream)"><B>CFSA(InputStream)</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Creates a new automaton, reading it from a file in FSA format, version 5.
-<DT><A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><B>CFSA2</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>CFSA (Compact Finite State Automaton) binary format implementation, version 2:
-
- <A HREF="./morfologik/fsa/CFSA2.html#BIT_TARGET_NEXT"><CODE>CFSA2.BIT_TARGET_NEXT</CODE></A> applicable on all arcs, not necessarily the last one.<DT><A HREF="./morfologik/fsa/CFSA2.html#CFSA2(java.io.InputStream)"><B>CFSA2(InputStream)</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>Reads an automaton from a byte stream.
-<DT><A HREF="./morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa"><B>CFSA2Serializer</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>Serializes in-memory <A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> graphs to <A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><CODE>CFSA2</CODE></A>.<DT><A HREF="./morfologik/fsa/CFSA2Serializer.html#CFSA2Serializer()"><B>CFSA2Serializer()</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/tools/FSABuildTool.html#checkSingleByte(java.lang.String)"><B>checkSingleByte(String)</B></A> -
-Static method in class morfologik.tools.<A HREF="./morfologik/tools/FSABuildTool.html" title="class in morfologik.tools">FSABuildTool</A>
-<DD>Check if the argument is a single byte after conversion using platform-default
- encoding.
-<DT><A HREF="./morfologik/stemming/WordData.html#clone()"><B>clone()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>
-<DD>Declare a covariant of <CODE>Object.clone()</CODE> that returns a deep copy of
- this object.
-<DT><A HREF="./morfologik/util/FileUtils.html#close(java.io.Closeable...)"><B>close(Closeable...)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A>
-<DD>Force any non-null closeables.
-<DT><A HREF="./morfologik/tools/MorphEncoder.html#commonPrefix(byte[], byte[])"><B>commonPrefix(byte[], byte[])</B></A> -
-Static method in class morfologik.tools.<A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSABuilder.html#compare(byte[], int, int, byte[], int, int)"><B>compare(byte[], int, int, byte[], int, int)</B></A> -
-Static method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A>
-<DD>Lexicographic order of input sequences.
-<DT><A HREF="./morfologik/fsa/FSABuilder.html#complete()"><B>complete()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A>
-<DD>Complete the automaton.
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa"><B>ConstantArcSizeFSA</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>An FSA with constant-size arc representation produced directly
- by <A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><CODE>FSABuilder</CODE></A>.</DL>
-<HR>
-<A NAME="_D_"><!-- --></A><H2>
-<B>D</B></H2>
-<DL>
-<DT><A HREF="./morfologik/stemming/DictionaryLookup.html#decodeStem(java.nio.ByteBuffer, byte[], int, java.nio.ByteBuffer, morfologik.stemming.DictionaryMetadata)"><B>decodeStem(ByteBuffer, byte[], int, ByteBuffer, DictionaryMetadata)</B></A> -
-Static method in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming">DictionaryLookup</A>
-<DD>Decode the base form of an inflected word and save its decoded form into
- a byte buffer.
-<DT><A HREF="./morfologik/fsa/FSA5.html#DEFAULT_ANNOTATION"><B>DEFAULT_ANNOTATION</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Default annotation byte.
-<DT><A HREF="./morfologik/fsa/FSA5.html#DEFAULT_FILLER"><B>DEFAULT_FILLER</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Default filler byte.
-<DT><A HREF="./morfologik/stemming/Dictionary.html#defaultDictionaries"><B>defaultDictionaries</B></A> -
-Static variable in class morfologik.stemming.<A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<DD>Default loaded dictionaries.
-<DT><A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><B>Dictionary</B></A> - Class in <A HREF="./morfologik/stemming/package-summary.html">morfologik.stemming</A><DD>A dictionary combines <A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> automaton and metadata describing the
- internals of dictionary entries' coding (<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><CODE>DictionaryMetadata</CODE></A>.<DT><A HREF="./morfologik/stemming/Dictionary.html#Dictionary(morfologik.fsa.FSA, morfologik.stemming.DictionaryMetadata)"><B>Dictionary(FSA, DictionaryMetadata)</B></A> -
-Constructor for class morfologik.stemming.<A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<DD>It is strongly recommended to use static methods in this class for
- reading dictionaries.
-<DT><A HREF="./morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming"><B>DictionaryIterator</B></A> - Class in <A HREF="./morfologik/stemming/package-summary.html">morfologik.stemming</A><DD>An iterator over <A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries of a <A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><CODE>Dictionary</CODE></A>.<DT><A HREF="./morfologik/stemming/DictionaryIterator.html#DictionaryIterator(morfologik.stemming.Dictionary, java.nio.charset.CharsetDecoder, boolean)"><B>DictionaryIterator(Dictionary, CharsetDecoder, boolean)</B></A> -
-Constructor for class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming">DictionaryIterator</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming"><B>DictionaryLookup</B></A> - Class in <A HREF="./morfologik/stemming/package-summary.html">morfologik.stemming</A><DD>This class implements a dictionary lookup over an FSA dictionary.<DT><A HREF="./morfologik/stemming/DictionaryLookup.html#DictionaryLookup(morfologik.stemming.Dictionary)"><B>DictionaryLookup(Dictionary)</B></A> -
-Constructor for class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming">DictionaryLookup</A>
-<DD>
- Creates a new object of this class using the given FSA for word lookups
- and encoding for converting characters to bytes.
-<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><B>DictionaryMetadata</B></A> - Class in <A HREF="./morfologik/stemming/package-summary.html">morfologik.stemming</A><DD>Description of attributes, their types and default values.<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html#DictionaryMetadata(char, java.lang.String, boolean, boolean, java.util.Map)"><B>DictionaryMetadata(char, String, boolean, boolean, Map&lt;String, String&gt;)</B></A> -
-Constructor for class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<DD>Creates an immutable instance of <A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><CODE>DictionaryMetadata</CODE></A>.
-<DT><A HREF="./morfologik/tools/FSABuildTool.html#dumpLine(byte[], int)"><B>dumpLine(byte[], int)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/FSABuildTool.html" title="class in morfologik.tools">FSABuildTool</A>
-<DD>Dump input line, byte-by-byte.
-</DL>
-<HR>
-<A NAME="_E_"><!-- --></A><H2>
-<B>E</B></H2>
-<DL>
-<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html#encoding"><B>encoding</B></A> -
-Variable in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<DD>Encoding used for converting bytes to characters and vice versa.
-<DT><A HREF="./morfologik/tools/IMessageLogger.html#endPart()"><B>endPart()</B></A> -
-Method in interface morfologik.tools.<A HREF="./morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/tools/WriterMessageLogger.html#endPart()"><B>endPart()</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools">WriterMessageLogger</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/util/BufferUtils.html#ensureCapacity(java.nio.ByteBuffer, int)"><B>ensureCapacity(ByteBuffer, int)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/BufferUtils.html" title="class in morfologik.util">BufferUtils</A>
-<DD>Ensure the byte buffer's capacity.
-<DT><A HREF="./morfologik/util/BufferUtils.html#ensureCapacity(java.nio.CharBuffer, int)"><B>ensureCapacity(CharBuffer, int)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/BufferUtils.html" title="class in morfologik.util">BufferUtils</A>
-<DD>Ensure the char buffer's capacity.
-<DT><A HREF="./morfologik/stemming/WordData.html#equals(java.lang.Object)"><B>equals(Object)</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/util/Arrays.html#equals(byte[], int, byte[], int, int)"><B>equals(byte[], int, byte[], int, int)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/Arrays.html" title="class in morfologik.util">Arrays</A>
-<DD>Compare two arrays for equality.
-<DT><A HREF="./morfologik/util/Arrays.html#equals(boolean[], int, boolean[], int, int)"><B>equals(boolean[], int, boolean[], int, int)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/Arrays.html" title="class in morfologik.util">Arrays</A>
-<DD>Compare two arrays for equality.
-<DT><A HREF="./morfologik/util/Arrays.html#equals(int[], int, int[], int, int)"><B>equals(int[], int, int[], int, int)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/Arrays.html" title="class in morfologik.util">Arrays</A>
-<DD>Compare two arrays for equality.
-<DT><A HREF="./morfologik/fsa/MatchResult.html#EXACT_MATCH"><B>EXACT_MATCH</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>
-<DD>The automaton has exactly one match for the input sequence.
-</DL>
-<HR>
-<A NAME="_F_"><!-- --></A><H2>
-<B>F</B></H2>
-<DL>
-<DT><A HREF="./morfologik/util/FileUtils.html" title="class in morfologik.util"><B>FileUtils</B></A> - Class in <A HREF="./morfologik/util/package-summary.html">morfologik.util</A><DD>Utility functions.<DT><A HREF="./morfologik/fsa/FSA5.html#filler"><B>filler</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Filler character.
-<DT><A HREF="./morfologik/fsa/FSA5Serializer.html#fillerByte"><B>fillerByte</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSAInfo.html#finalStatesCount"><B>finalStatesCount</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa">FSAInfo</A>
-<DD>Number of final states (number of input sequences stored in the automaton).
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#FLAGS_OFFSET"><B>FLAGS_OFFSET</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>Offset of the flags field inside an arc.
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#FLAGS_SIZE"><B>FLAGS_SIZE</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>Size of the flags field (constant for the builder).
-<DT><A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa"><B>FSA</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>This is a top abstract class for handling finite state automata.<DT><A HREF="./morfologik/fsa/FSA.html#FSA()"><B>FSA()</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/stemming/Dictionary.html#fsa"><B>fsa</B></A> -
-Variable in class morfologik.stemming.<A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<DD><A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> automaton with the compiled dictionary data.
-<DT><A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa"><B>FSA5</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>FSA binary format implementation for version 5.<DT><A HREF="./morfologik/fsa/FSA5.html#FSA5(java.io.InputStream)"><B>FSA5(InputStream)</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Read and wrap a binary automaton in FSA version 5.
-<DT><A HREF="./morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa"><B>FSA5Serializer</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>Serializes in-memory <A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> graphs to a binary format compatible with
- Jan Daciuk's <code>fsa</code>'s package <code>FSA5</code> format.<DT><A HREF="./morfologik/fsa/FSA5Serializer.html#FSA5Serializer()"><B>FSA5Serializer()</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><B>FSABuilder</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>Fast, memory-conservative finite state automaton builder, returning a
- byte-serialized <A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa"><CODE>ConstantArcSizeFSA</CODE></A> (a tradeoff between construction
- speed and memory consumption).<DT><A HREF="./morfologik/fsa/FSABuilder.html#FSABuilder()"><B>FSABuilder()</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSABuilder.html#FSABuilder(int)"><B>FSABuilder(int)</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa"><B>FSABuilder.InfoEntry</B></A> - Enum in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>Debug and information constants.<DT><A HREF="./morfologik/tools/FSABuildTool.html" title="class in morfologik.tools"><B>FSABuildTool</B></A> - Class in <A HREF="./morfologik/tools/package-summary.html">morfologik.tools</A><DD>Convert from plain text input to a serialized FSA in any of the
- available <A HREF="./morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools"><CODE>FSABuildTool.Format</CODE></A>s.<DT><A HREF="./morfologik/tools/FSABuildTool.html#FSABuildTool()"><B>FSABuildTool()</B></A> -
-Constructor for class morfologik.tools.<A HREF="./morfologik/tools/FSABuildTool.html" title="class in morfologik.tools">FSABuildTool</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools"><B>FSABuildTool.Format</B></A> - Enum in <A HREF="./morfologik/tools/package-summary.html">morfologik.tools</A><DD>The serialization format to use for the binary output.<DT><A HREF="./morfologik/tools/FSADumpTool.html" title="class in morfologik.tools"><B>FSADumpTool</B></A> - Class in <A HREF="./morfologik/tools/package-summary.html">morfologik.tools</A><DD>This utility will dump the information and contents of a given <A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A>
- dictionary.<DT><A HREF="./morfologik/tools/FSADumpTool.html#FSADumpTool()"><B>FSADumpTool()</B></A> -
-Constructor for class morfologik.tools.<A HREF="./morfologik/tools/FSADumpTool.html" title="class in morfologik.tools">FSADumpTool</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa"><B>FSAFinalStatesIterator</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>An iterator that traverses the right language of a given node (all sequences
- reachable from a given node).<DT><A HREF="./morfologik/fsa/FSAFinalStatesIterator.html#FSAFinalStatesIterator(morfologik.fsa.FSA, int)"><B>FSAFinalStatesIterator(FSA, int)</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa">FSAFinalStatesIterator</A>
-<DD>Create an instance of the iterator for a given node.
-<DT><A HREF="./morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa"><B>FSAFlags</B></A> - Enum in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>FSA automaton flags.<DT><A HREF="./morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa"><B>FSAInfo</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>Compute additional information about an FSA: number of arcs, nodes, etc.<DT><A HREF="./morfologik/fsa/FSAInfo.html#FSAInfo(morfologik.fsa.FSA)"><B>FSAInfo(FSA)</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa">FSAInfo</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSAInfo.html#FSAInfo(int, int, int, int)"><B>FSAInfo(int, int, int, int)</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa">FSAInfo</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa"><B>FSASerializer</B></A> - Interface in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>All FSA serializers to binary formats will implement this interface.<DT><A HREF="./morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><B>FSATraversal</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>This class implements some common matching and scanning operations on a
- generic FSA.<DT><A HREF="./morfologik/fsa/FSATraversal.html#FSATraversal(morfologik.fsa.FSA)"><B>FSATraversal(FSA)</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa">FSATraversal</A>
-<DD>Traversals of the given FSA.
-<DT><A HREF="./morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa"><B>FSAUtils</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>Other FSA-related utilities not directly associated with the class hierarchy.<DT><A HREF="./morfologik/fsa/FSAUtils.html#FSAUtils()"><B>FSAUtils()</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa">FSAUtils</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa"><B>FSAUtils.IntIntHolder</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>&nbsp;<DT><A HREF="./morfologik/fsa/FSAUtils.IntIntHolder.html#FSAUtils.IntIntHolder(int, int)"><B>FSAUtils.IntIntHolder(int, int)</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa">FSAUtils.IntIntHolder</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSAUtils.IntIntHolder.html#FSAUtils.IntIntHolder()"><B>FSAUtils.IntIntHolder()</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa">FSAUtils.IntIntHolder</A>
-<DD>&nbsp;
-</DL>
-<HR>
-<A NAME="_G_"><!-- --></A><H2>
-<B>G</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/CFSA.html#getArc(int, byte)"><B>getArc(int, byte)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/CFSA2.html#getArc(int, byte)"><B>getArc(int, byte)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#getArc(int, byte)"><B>getArc(int, byte)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA.html#getArc(int, byte)"><B>getArc(int, byte)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA5.html#getArc(int, byte)"><B>getArc(int, byte)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/FSA.html#getArcCount(int)"><B>getArcCount(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Calculates the number of arcs of a given node.
-<DT><A HREF="./morfologik/fsa/CFSA.html#getArcLabel(int)"><B>getArcLabel(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Return the label associated with a given <code>arc</code>.
-<DT><A HREF="./morfologik/fsa/CFSA2.html#getArcLabel(int)"><B>getArcLabel(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>Return the label associated with a given <code>arc</code>.
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#getArcLabel(int)"><B>getArcLabel(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA.html#getArcLabel(int)"><B>getArcLabel(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Return the label associated with a given <code>arc</code>.
-<DT><A HREF="./morfologik/fsa/FSA5.html#getArcLabel(int)"><B>getArcLabel(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Return the label associated with a given <code>arc</code>.
-<DT><A HREF="./morfologik/stemming/DictionaryLookup.html#getDictionary()"><B>getDictionary()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming">DictionaryLookup</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/CFSA.html#getEndNode(int)"><B>getEndNode(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Return the end node pointed to by a given <code>arc</code>.
-<DT><A HREF="./morfologik/fsa/CFSA2.html#getEndNode(int)"><B>getEndNode(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>Return the end node pointed to by a given <code>arc</code>.
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#getEndNode(int)"><B>getEndNode(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA.html#getEndNode(int)"><B>getEndNode(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Return the end node pointed to by a given <code>arc</code>.
-<DT><A HREF="./morfologik/fsa/FSA5.html#getEndNode(int)"><B>getEndNode(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Return the end node pointed to by a given <code>arc</code>.
-<DT><A HREF="./morfologik/stemming/Dictionary.html#getExpectedFeaturesName(java.lang.String)"><B>getExpectedFeaturesName(String)</B></A> -
-Static method in class morfologik.stemming.<A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<DD>Returns the expected name of the metadata file, based on the name of the
- FSA dictionary file.
-<DT><A HREF="./morfologik/fsa/CFSA.html#getFirstArc(int)"><B>getFirstArc(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/CFSA2.html#getFirstArc(int)"><B>getFirstArc(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#getFirstArc(int)"><B>getFirstArc(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA.html#getFirstArc(int)"><B>getFirstArc(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA5.html#getFirstArc(int)"><B>getFirstArc(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/CFSA.html#getFlags()"><B>getFlags()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Returns a set of flags for this FSA instance.
-<DT><A HREF="./morfologik/fsa/CFSA2.html#getFlags()"><B>getFlags()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>Returns a set of flags for this FSA instance.
-<DT><A HREF="./morfologik/fsa/CFSA2Serializer.html#getFlags()"><B>getFlags()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A>
-<DD>Return supported flags.
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#getFlags()"><B>getFlags()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA.html#getFlags()"><B>getFlags()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Returns a set of flags for this FSA instance.
-<DT><A HREF="./morfologik/fsa/FSA5.html#getFlags()"><B>getFlags()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Returns a set of flags for this FSA instance.
-<DT><A HREF="./morfologik/fsa/FSA5Serializer.html#getFlags()"><B>getFlags()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A>
-<DD>Return supported flags.
-<DT><A HREF="./morfologik/fsa/FSASerializer.html#getFlags()"><B>getFlags()</B></A> -
-Method in interface morfologik.fsa.<A HREF="./morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A>
-<DD>Returns the set of flags supported by the serializer (and the output automaton).
-<DT><A HREF="./morfologik/stemming/Dictionary.html#getForLanguage(java.lang.String)"><B>getForLanguage(String)</B></A> -
-Static method in class morfologik.stemming.<A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<DD>Return a built-in dictionary for a given ISO language code.
-<DT><A HREF="./morfologik/fsa/FSABuilder.html#getInfo()"><B>getInfo()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A>
-<DD>Return various statistics concerning the FSA and its compilation.
-<DT><A HREF="./morfologik/fsa/CFSA.html#getNextArc(int)"><B>getNextArc(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/CFSA2.html#getNextArc(int)"><B>getNextArc(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#getNextArc(int)"><B>getNextArc(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA.html#getNextArc(int)"><B>getNextArc(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA5.html#getNextArc(int)"><B>getNextArc(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/CFSA.html#getRightLanguageCount(int)"><B>getRightLanguageCount(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/CFSA2.html#getRightLanguageCount(int)"><B>getRightLanguageCount(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/FSA.html#getRightLanguageCount(int)"><B>getRightLanguageCount(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA5.html#getRightLanguageCount(int)"><B>getRightLanguageCount(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Returns the number encoded at the given node.
-<DT><A HREF="./morfologik/fsa/CFSA.html#getRootNode()"><B>getRootNode()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Returns the start node of this automaton.
-<DT><A HREF="./morfologik/fsa/CFSA2.html#getRootNode()"><B>getRootNode()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#getRootNode()"><B>getRootNode()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA.html#getRootNode()"><B>getRootNode()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA5.html#getRootNode()"><B>getRootNode()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Returns the start node of this automaton.
-<DT><A HREF="./morfologik/fsa/FSA.html#getSequences(int)"><B>getSequences(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Returns an iterator over all binary sequences starting at the given FSA
- state (node) and ending in final nodes.
-<DT><A HREF="./morfologik/fsa/FSA.html#getSequences()"><B>getSequences()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>An alias of calling <A HREF="./morfologik/fsa/FSA.html#iterator()"><CODE>FSA.iterator()</CODE></A> directly (<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> is also
- <CODE>Iterable</CODE>).
-<DT><A HREF="./morfologik/tools/FSABuildTool.Format.html#getSerializer()"><B>getSerializer()</B></A> -
-Method in enum morfologik.tools.<A HREF="./morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/stemming/WordData.html#getStem()"><B>getStem()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/stemming/WordData.html#getStemBytes(java.nio.ByteBuffer)"><B>getStemBytes(ByteBuffer)</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>
-<DD>Copy the stem's binary data (no charset decoding) to a custom byte
- buffer.
-<DT><A HREF="./morfologik/stemming/WordData.html#getTag()"><B>getTag()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/stemming/WordData.html#getTagBytes(java.nio.ByteBuffer)"><B>getTagBytes(ByteBuffer)</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>
-<DD>Copy the tag's binary data (no charset decoding) to a custom byte buffer.
-<DT><A HREF="./morfologik/stemming/WordData.html#getWord()"><B>getWord()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/stemming/WordData.html#getWordBytes(java.nio.ByteBuffer)"><B>getWordBytes(ByteBuffer)</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>
-<DD>Copy the inflected word's binary data (no charset decoding) to a custom
- byte buffer.
-<DT><A HREF="./morfologik/tools/FSABuildTool.html#go(org.apache.commons.cli.CommandLine)"><B>go(CommandLine)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/FSABuildTool.html" title="class in morfologik.tools">FSABuildTool</A>
-<DD>Command line entry point after parsing arguments.
-<DT><A HREF="./morfologik/tools/FSADumpTool.html#go(org.apache.commons.cli.CommandLine)"><B>go(CommandLine)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/FSADumpTool.html" title="class in morfologik.tools">FSADumpTool</A>
-<DD>Command line entry point after parsing arguments.
-<DT><A HREF="./morfologik/fsa/CFSA.html#gtl"><B>gtl</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Number of bytes each address takes in full, expanded form (goto length).
-<DT><A HREF="./morfologik/fsa/FSA5.html#gtl"><B>gtl</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Number of bytes each address takes in full, expanded form (goto length).
-</DL>
-<HR>
-<A NAME="_H_"><!-- --></A><H2>
-<B>H</B></H2>
-<DL>
-<DT><A HREF="./morfologik/stemming/WordData.html#hashCode()"><B>hashCode()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSAFinalStatesIterator.html#hasNext()"><B>hasNext()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa">FSAFinalStatesIterator</A>
-<DD>Returns <code>true</code> if there are still elements in this iterator.
-<DT><A HREF="./morfologik/stemming/DictionaryIterator.html#hasNext()"><B>hasNext()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming">DictionaryIterator</A>
-<DD>&nbsp;
-</DL>
-<HR>
-<A NAME="_I_"><!-- --></A><H2>
-<B>I</B></H2>
-<DL>
-<DT><A HREF="./morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools"><B>IMessageLogger</B></A> - Interface in <A HREF="./morfologik/tools/package-summary.html">morfologik.tools</A><DD>&nbsp;<DT><A HREF="./morfologik/fsa/MatchResult.html#index"><B>index</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>
-<DD>Input sequence's index, interpretation depends on <A HREF="./morfologik/fsa/MatchResult.html#kind"><CODE>MatchResult.kind</CODE></A>.
-<DT><A HREF="./morfologik/tools/MorphEncoder.html#infixEncode(byte[], byte[], byte[])"><B>infixEncode(byte[], byte[], byte[])</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<DD>This method converts wordform, wordLemma and the tag to the form:
-
- inflected_form + MLKending + tags
-
-
- where '+' is a separator, M is the position of characters to be deleted
- towards the beginning of the inflected form ("A" means from the
- beginning, "B" from the second character, "C" - from the third one, and
- so on), L is the number of characters to be deleted from the position
- specified by M ("A" means none, "B" means one, "C" - 2, etc.), K is a
- character that specifies how many characters should be deleted from the
- end of the inflected form to produce the lexeme by concatenating the
- stripped string with the ending ("A" means none, "B' - 1, "C" - 2, and so
- on).
-<DT><A HREF="./morfologik/tools/MorphEncoder.html#infixEncodeUTF8(java.lang.String, java.lang.String, java.lang.String)"><B>infixEncodeUTF8(String, String, String)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<DD>A UTF-8 variant of <A HREF="./morfologik/tools/MorphEncoder.html#infixEncode(byte[], byte[], byte[])"><CODE>MorphEncoder.infixEncode(byte[], byte[], byte[])</CODE></A>.
-<DT><A HREF="./morfologik/tools/InflectionFramesTool.html#inflectionFrames()"><B>inflectionFrames()</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools">InflectionFramesTool</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools"><B>InflectionFramesTool</B></A> - Class in <A HREF="./morfologik/tools/package-summary.html">morfologik.tools</A><DD>Calculate inflection frames from the Polish dictionary.<DT><A HREF="./morfologik/tools/InflectionFramesTool.html#InflectionFramesTool()"><B>InflectionFramesTool()</B></A> -
-Constructor for class morfologik.tools.<A HREF="./morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools">InflectionFramesTool</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/tools/FSABuildTool.html#initializeOptions(org.apache.commons.cli.Options)"><B>initializeOptions(Options)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/FSABuildTool.html" title="class in morfologik.tools">FSABuildTool</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/tools/FSADumpTool.html#initializeOptions(org.apache.commons.cli.Options)"><B>initializeOptions(Options)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/FSADumpTool.html" title="class in morfologik.tools">FSADumpTool</A>
-<DD>Command line options for the tool.
-<DT><A HREF="./morfologik/fsa/CFSA.html#isArcFinal(int)"><B>isArcFinal(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.
-<DT><A HREF="./morfologik/fsa/CFSA2.html#isArcFinal(int)"><B>isArcFinal(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#isArcFinal(int)"><B>isArcFinal(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA.html#isArcFinal(int)"><B>isArcFinal(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.
-<DT><A HREF="./morfologik/fsa/FSA5.html#isArcFinal(int)"><B>isArcFinal(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.
-<DT><A HREF="./morfologik/fsa/CFSA.html#isArcLast(int)"><B>isArcLast(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Returns <code>true</code> if this arc has <code>NEXT</code> bit set.
-<DT><A HREF="./morfologik/fsa/CFSA2.html#isArcLast(int)"><B>isArcLast(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>Returns <code>true</code> if this arc has <code>NEXT</code> bit set.
-<DT><A HREF="./morfologik/fsa/FSA5.html#isArcLast(int)"><B>isArcLast(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Returns <code>true</code> if this arc has <code>LAST</code> bit set.
-<DT><A HREF="./morfologik/fsa/CFSA.html#isArcTerminal(int)"><B>isArcTerminal(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="./morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception).
-<DT><A HREF="./morfologik/fsa/CFSA2.html#isArcTerminal(int)"><B>isArcTerminal(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="./morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception).
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#isArcTerminal(int)"><B>isArcTerminal(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA.html#isArcTerminal(int)"><B>isArcTerminal(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="./morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception).
-<DT><A HREF="./morfologik/fsa/FSA5.html#isArcTerminal(int)"><B>isArcTerminal(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="./morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception).
-<DT><A HREF="./morfologik/fsa/CFSA.html#isLabelCompressed(int)"><B>isLabelCompressed(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Returns <code>true</code> if the label is compressed inside flags byte.
-<DT><A HREF="./morfologik/fsa/CFSA.html#isNextSet(int)"><B>isNextSet(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/CFSA2.html#isNextSet(int)"><B>isNextSet(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA5.html#isNextSet(int)"><B>isNextSet(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSAFlags.html#isSet(int, morfologik.fsa.FSAFlags)"><B>isSet(int, FSAFlags)</B></A> -
-Static method in enum morfologik.fsa.<A HREF="./morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>
-<DD>Returns <code>true</code> if the corresponding flag is set in the bit set.
-<DT><A HREF="./morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming"><B>IStemmer</B></A> - Interface in <A HREF="./morfologik/stemming/package-summary.html">morfologik.stemming</A><DD>A generic &quot;stemmer&quot; interface in Morfologik.<DT><A HREF="./morfologik/fsa/FSA.html#iterator()"><B>iterator()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Returns an iterator over all binary sequences starting from the initial
- FSA state (node) and ending in final nodes.
-<DT><A HREF="./morfologik/stemming/DictionaryLookup.html#iterator()"><B>iterator()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming">DictionaryLookup</A>
-<DD>Return an iterator over all <A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries available in the
- embedded <A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><CODE>Dictionary</CODE></A>.
-<DT><A HREF="./morfologik/stemming/PolishStemmer.html#iterator()"><B>iterator()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming">PolishStemmer</A>
-<DD>Iterates over all dictionary forms stored in this stemmer.
-</DL>
-<HR>
-<A NAME="_K_"><!-- --></A><H2>
-<B>K</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/MatchResult.html#kind"><B>kind</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>
-<DD>One of the match kind constants defined in this class.
-</DL>
-<HR>
-<A NAME="_L_"><!-- --></A><H2>
-<B>L</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#LABEL_OFFSET"><B>LABEL_OFFSET</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>Offset of the label field inside an arc.
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#LABEL_SIZE"><B>LABEL_SIZE</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>Size of the label field (constant for the builder).
-<DT><A HREF="./morfologik/fsa/CFSA.html#labelMapping"><B>labelMapping</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Label mapping for arcs of type (1) (see class documentation).
-<DT><A HREF="./morfologik/fsa/CFSA2.html#labelMapping"><B>labelMapping</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>Label mapping for M-indexed labels.
-<DT><A HREF="./morfologik/tools/Launcher.html" title="class in morfologik.tools"><B>Launcher</B></A> - Class in <A HREF="./morfologik/tools/package-summary.html">morfologik.tools</A><DD>A launcher for other command-line tools.<DT><A HREF="./morfologik/tools/Launcher.html#Launcher()"><B>Launcher()</B></A> -
-Constructor for class morfologik.tools.<A HREF="./morfologik/tools/Launcher.html" title="class in morfologik.tools">Launcher</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSABuilder.html#LEXICAL_ORDERING"><B>LEXICAL_ORDERING</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A>
-<DD>Comparator comparing full byte arrays consistently with
- <A HREF="./morfologik/fsa/FSABuilder.html#compare(byte[], int, int, byte[], int, int)"><CODE>FSABuilder.compare(byte[], int, int, byte[], int, int)</CODE></A>.
-<DT><A HREF="./morfologik/tools/IMessageLogger.html#log(java.lang.String)"><B>log(String)</B></A> -
-Method in interface morfologik.tools.<A HREF="./morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>
-<DD>Log progress to the console.
-<DT><A HREF="./morfologik/tools/IMessageLogger.html#log(java.lang.String, java.lang.Object)"><B>log(String, Object)</B></A> -
-Method in interface morfologik.tools.<A HREF="./morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>
-<DD>Log a two-part message.
-<DT><A HREF="./morfologik/tools/WriterMessageLogger.html#log(java.lang.String)"><B>log(String)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools">WriterMessageLogger</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/tools/WriterMessageLogger.html#log(java.lang.String, java.lang.Object)"><B>log(String, Object)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools">WriterMessageLogger</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/stemming/DictionaryLookup.html#lookup(java.lang.CharSequence)"><B>lookup(CharSequence)</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming">DictionaryLookup</A>
-<DD>Searches the automaton for a symbol sequence equal to <code>word</code>,
- followed by a separator.
-<DT><A HREF="./morfologik/stemming/IStemmer.html#lookup(java.lang.CharSequence)"><B>lookup(CharSequence)</B></A> -
-Method in interface morfologik.stemming.<A HREF="./morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A>
-<DD>Returns a list of <A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries for a given word.
-<DT><A HREF="./morfologik/stemming/PolishStemmer.html#lookup(java.lang.CharSequence)"><B>lookup(CharSequence)</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming">PolishStemmer</A>
-<DD>Returns a list of <A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries for a given word.
-</DL>
-<HR>
-<A NAME="_M_"><!-- --></A><H2>
-<B>M</B></H2>
-<DL>
-<DT><A HREF="./morfologik/tools/FSABuildTool.html#main(java.lang.String[])"><B>main(String[])</B></A> -
-Static method in class morfologik.tools.<A HREF="./morfologik/tools/FSABuildTool.html" title="class in morfologik.tools">FSABuildTool</A>
-<DD>Command line entry point.
-<DT><A HREF="./morfologik/tools/FSADumpTool.html#main(java.lang.String[])"><B>main(String[])</B></A> -
-Static method in class morfologik.tools.<A HREF="./morfologik/tools/FSADumpTool.html" title="class in morfologik.tools">FSADumpTool</A>
-<DD>Command line entry point.
-<DT><A HREF="./morfologik/tools/InflectionFramesTool.html#main(java.lang.String[])"><B>main(String[])</B></A> -
-Static method in class morfologik.tools.<A HREF="./morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools">InflectionFramesTool</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/tools/Launcher.html#main(java.lang.String[])"><B>main(String[])</B></A> -
-Static method in class morfologik.tools.<A HREF="./morfologik/tools/Launcher.html" title="class in morfologik.tools">Launcher</A>
-<DD>Command line entry point.
-<DT><A HREF="./morfologik/fsa/FSATraversal.html#match(morfologik.fsa.MatchResult, byte[], int, int, int)"><B>match(MatchResult, byte[], int, int, int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa">FSATraversal</A>
-<DD>Same as <A HREF="./morfologik/fsa/FSATraversal.html#match(byte[], int, int, int)"><CODE>FSATraversal.match(byte[], int, int, int)</CODE></A>, but allows passing
- a reusable <A HREF="./morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><CODE>MatchResult</CODE></A> object so that no intermediate garbage is
- produced.
-<DT><A HREF="./morfologik/fsa/FSATraversal.html#match(byte[], int, int, int)"><B>match(byte[], int, int, int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa">FSATraversal</A>
-<DD>Finds a matching path in the dictionary for a given sequence of labels
- from <code>sequence</code> and starting at node <code>node</code>.
-<DT><A HREF="./morfologik/fsa/FSATraversal.html#match(byte[], int)"><B>match(byte[], int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa">FSATraversal</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSATraversal.html#match(byte[])"><B>match(byte[])</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa">FSATraversal</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><B>MatchResult</B></A> - Class in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>A matching result returned from <A HREF="./morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><CODE>FSATraversal</CODE></A>.<DT><A HREF="./morfologik/fsa/MatchResult.html#MatchResult()"><B>MatchResult()</B></A> -
-Constructor for class morfologik.fsa.<A HREF="./morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/stemming/Dictionary.html#metadata"><B>metadata</B></A> -
-Variable in class morfologik.stemming.<A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<DD>Metadata associated with the dictionary.
-<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html#metadata"><B>metadata</B></A> -
-Variable in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<DD>Other meta data not included above.
-<DT><A HREF="./morfologik/stemming/Dictionary.html#METADATA_FILE_EXTENSION"><B>METADATA_FILE_EXTENSION</B></A> -
-Static variable in class morfologik.stemming.<A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<DD>Expected metadata file extension.
-<DT><A HREF="./morfologik/fsa/package-summary.html"><B>morfologik.fsa</B></A> - package morfologik.fsa<DD>&nbsp;<DT><A HREF="./morfologik/stemming/package-summary.html"><B>morfologik.stemming</B></A> - package morfologik.stemming<DD>&nbsp;<DT><A HREF="./morfologik/tools/package-summary.html"><B>morfologik.tools</B></A> - package morfologik.tools<DD>&nbsp;<DT><A HREF="./morfologik/util/package-summary.html"><B>morfologik.util</B></A> - package morfologik.util<DD>&nbsp;<DT><A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools"><B>MorphEncoder</B></A> - Class in <A HREF="./morfologik/tools/package-summary.html">morfologik.tools</A><DD>A class that converts tabular data to fsa morphological format.<DT><A HREF="./morfologik/tools/MorphEncoder.html#MorphEncoder()"><B>MorphEncoder()</B></A> -
-Constructor for class morfologik.tools.<A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/tools/MorphEncoder.html#MorphEncoder(byte)"><B>MorphEncoder(byte)</B></A> -
-Constructor for class morfologik.tools.<A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<DD>&nbsp;
-</DL>
-<HR>
-<A NAME="_N_"><!-- --></A><H2>
-<B>N</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/FSAFinalStatesIterator.html#next()"><B>next()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa">FSAFinalStatesIterator</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/stemming/DictionaryIterator.html#next()"><B>next()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming">DictionaryIterator</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/MatchResult.html#NO_MATCH"><B>NO_MATCH</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>
-<DD>The automaton has no match for the input sequence.
-<DT><A HREF="./morfologik/fsa/MatchResult.html#node"><B>node</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>
-<DD>Automaton node, interpretation depends on the <A HREF="./morfologik/fsa/MatchResult.html#kind"><CODE>MatchResult.kind</CODE></A>.
-<DT><A HREF="./morfologik/fsa/FSAInfo.html#nodeCount"><B>nodeCount</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa">FSAInfo</A>
-<DD>Number of nodes in the automaton.
-<DT><A HREF="./morfologik/fsa/CFSA.html#nodeDataLength"><B>nodeDataLength</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>The length of the node header structure (if the automaton was compiled with
- <code>NUMBERS</code> option).
-<DT><A HREF="./morfologik/fsa/FSA5.html#nodeDataLength"><B>nodeDataLength</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>The length of the node header structure (if the automaton was compiled with
- <code>NUMBERS</code> option).
-</DL>
-<HR>
-<A NAME="_O_"><!-- --></A><H2>
-<B>O</B></H2>
-<DL>
-<DT><A HREF="./morfologik/util/ResourceUtils.html#openInputStream(java.lang.String)"><B>openInputStream(String)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/ResourceUtils.html" title="class in morfologik.util">ResourceUtils</A>
-<DD>Returns an input stream to the resource.
-</DL>
-<HR>
-<A NAME="_P_"><!-- --></A><H2>
-<B>P</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/FSATraversal.html#perfectHash(byte[], int, int, int)"><B>perfectHash(byte[], int, int, int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa">FSATraversal</A>
-<DD>Calculate perfect hash for a given input sequence of bytes.
-<DT><A HREF="./morfologik/fsa/FSATraversal.html#perfectHash(byte[])"><B>perfectHash(byte[])</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa">FSATraversal</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming"><B>PolishStemmer</B></A> - Class in <A HREF="./morfologik/stemming/package-summary.html">morfologik.stemming</A><DD>A dictionary-based stemmer for the Polish language.<DT><A HREF="./morfologik/stemming/PolishStemmer.html#PolishStemmer()"><B>PolishStemmer()</B></A> -
-Constructor for class morfologik.stemming.<A HREF="./morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming">PolishStemmer</A>
-<DD>This constructor is initialized with a built-in dictionary or fails with
- a runtime exception if the dictionary is not available.
-<DT><A HREF="./morfologik/tools/MorphEncoder.html#prefixEncode(byte[], byte[], byte[])"><B>prefixEncode(byte[], byte[], byte[])</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<DD>This method converts wordform, wordLemma and the tag to the form:
-
-
-
- inflected_form + LKending + tags
-
-
- where '+' is a separator, L is the number of characters to be deleted
- from the beginning of the word ("A" means none, "B" means one, "C" - 2,
- etc.), K is a character that specifies how many characters should be
- deleted from the end of the inflected form to produce the lexeme by
- concatenating the stripped string with the ending ("A" means none,
- "B' - 1, "C" - 2, and so on).
-<DT><A HREF="./morfologik/tools/MorphEncoder.html#prefixEncodeUTF8(java.lang.String, java.lang.String, java.lang.String)"><B>prefixEncodeUTF8(String, String, String)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<DD>A UTF-8 variant of <A HREF="./morfologik/tools/MorphEncoder.html#prefixEncode(byte[], byte[], byte[])"><CODE>MorphEncoder.prefixEncode(byte[], byte[], byte[])</CODE></A> This
- method converts wordform, wordLemma and the tag to the form:
-
- inflected_form + LKending + tags
-
-
- where '+' is a separator, L is the number of characters to be deleted
- from the beginning of the word ("A" means none, "B" means one, "C" - 2,
- etc.), K is a character that specifies how many characters should be
- deleted from the end of the inflected form to produce the lexeme by
- concatenating the stripped string with the ending ("A" means none,
- "B' - 1, "C" - 2, and so on).
-<DT><A HREF="./morfologik/tools/FSABuildTool.html#printUsage()"><B>printUsage()</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/FSABuildTool.html" title="class in morfologik.tools">FSABuildTool</A>
-<DD>&nbsp;
-</DL>
-<HR>
-<A NAME="_R_"><!-- --></A><H2>
-<B>R</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/FSA.html#read(java.io.InputStream)"><B>read(InputStream)</B></A> -
-Static method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>A factory for reading automata in any of the supported versions.
-<DT><A HREF="./morfologik/stemming/Dictionary.html#read(java.io.File)"><B>read(File)</B></A> -
-Static method in class morfologik.stemming.<A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<DD>Attempts to load a dictionary using the path to the FSA file and the
- expected metadata extension.
-<DT><A HREF="./morfologik/stemming/Dictionary.html#read(java.net.URL)"><B>read(URL)</B></A> -
-Static method in class morfologik.stemming.<A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<DD>
- Attempts to load a dictionary using the URL to the FSA file and the
- expected metadata extension.
-<DT><A HREF="./morfologik/stemming/Dictionary.html#readAndClose(java.io.InputStream, java.io.InputStream)"><B>readAndClose(InputStream, InputStream)</B></A> -
-Static method in class morfologik.stemming.<A HREF="./morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>
-<DD>Attempts to load a dictionary from opened streams of FSA dictionary data
- and associated metadata.
-<DT><A HREF="./morfologik/util/FileUtils.html#readByte(java.io.InputStream)"><B>readByte(InputStream)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A>
-<DD>Read exactly one byte from the input stream.
-<DT><A HREF="./morfologik/util/FileUtils.html#readFully(java.io.InputStream)"><B>readFully(InputStream)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A>
-<DD>Reads all bytes from an input stream (until EOF).
-<DT><A HREF="./morfologik/util/FileUtils.html#readFully(java.io.InputStream, byte[])"><B>readFully(InputStream, byte[])</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A>
-<DD>Read enough bytes to fill <code>array</code> If there are not enough
- bytes, throw an exception.
-<DT><A HREF="./morfologik/util/FileUtils.html#readInt(java.io.InputStream)"><B>readInt(InputStream)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A>
-<DD>Read exactly 4 bytes from the input stream.
-<DT><A HREF="./morfologik/util/FileUtils.html#readShort(java.io.InputStream)"><B>readShort(InputStream)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A>
-<DD>Read exactly 2 bytes from the input stream.
-<DT><A HREF="./morfologik/util/Arrays.html#referenceEquals(java.lang.Object[], int, java.lang.Object[], int, int)"><B>referenceEquals(Object[], int, Object[], int, int)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/Arrays.html" title="class in morfologik.util">Arrays</A>
-<DD>Compare two lists of objects for reference-equality.
-<DT><A HREF="./morfologik/fsa/FSAFinalStatesIterator.html#remove()"><B>remove()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa">FSAFinalStatesIterator</A>
-<DD>Not implemented in this iterator.
-<DT><A HREF="./morfologik/stemming/DictionaryIterator.html#remove()"><B>remove()</B></A> -
-Method in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming">DictionaryIterator</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/util/ResourceUtils.html" title="class in morfologik.util"><B>ResourceUtils</B></A> - Class in <A HREF="./morfologik/util/package-summary.html">morfologik.util</A><DD>Resource management utilities.<DT><A HREF="./morfologik/fsa/FSAFinalStatesIterator.html#restartFrom(int)"><B>restartFrom(int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa">FSAFinalStatesIterator</A>
-<DD>Restart walking from <code>node</code>.
-<DT><A HREF="./morfologik/fsa/FSAUtils.html#rightLanguage(morfologik.fsa.FSA, int)"><B>rightLanguage(FSA, int)</B></A> -
-Static method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa">FSAUtils</A>
-<DD>All byte sequences generated as the right language of <code>state</code>.
-<DT><A HREF="./morfologik/fsa/FSAUtils.html#rightLanguageForAllStates(morfologik.fsa.FSA)"><B>rightLanguageForAllStates(FSA)</B></A> -
-Static method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa">FSAUtils</A>
-<DD>Calculate the size of right language for each state in an FSA.
-</DL>
-<HR>
-<A NAME="_S_"><!-- --></A><H2>
-<B>S</B></H2>
-<DL>
-<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html#separator"><B>separator</B></A> -
-Variable in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<DD>A separator character between fields (stem, lemma, form).
-<DT><A HREF="./morfologik/fsa/MatchResult.html#SEQUENCE_IS_A_PREFIX"><B>SEQUENCE_IS_A_PREFIX</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>
-<DD>The sequence is a prefix of at least one sequence in the automaton.
-<DT><A HREF="./morfologik/fsa/CFSA2Serializer.html#serialize(morfologik.fsa.FSA, T)"><B>serialize(FSA, T)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A>
-<DD>Serializes any <A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> to <A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><CODE>CFSA2</CODE></A> stream.
-<DT><A HREF="./morfologik/fsa/FSA5Serializer.html#serialize(morfologik.fsa.FSA, T)"><B>serialize(FSA, T)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A>
-<DD>Serialize root state <code>s</code> to an output stream in
- <code>FSA5</code> format.
-<DT><A HREF="./morfologik/fsa/FSASerializer.html#serialize(morfologik.fsa.FSA, T)"><B>serialize(FSA, T)</B></A> -
-Method in interface morfologik.fsa.<A HREF="./morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A>
-<DD>Serialize a finite state automaton to an output stream.
-<DT><A HREF="./morfologik/fsa/FSAInfo.html#size"><B>size</B></A> -
-Variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa">FSAInfo</A>
-<DD>Arcs size (in serialized form).
-<DT><A HREF="./morfologik/tools/MorphEncoder.html#standardEncode(byte[], byte[], byte[])"><B>standardEncode(byte[], byte[], byte[])</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<DD>This method converts the wordForm, wordLemma and tag to the form:
-
-
- wordForm + Kending + tags
-
-
- where '+' is a separator, K is a character that specifies how many
- characters should be deleted from the end of the inflected form to
- produce the lexeme by concatenating the stripped string with the ending.
-<DT><A HREF="./morfologik/tools/MorphEncoder.html#standardEncodeUTF8(java.lang.String, java.lang.String, java.lang.String)"><B>standardEncodeUTF8(String, String, String)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A>
-<DD>A UTF-8 variant of <A HREF="./morfologik/tools/MorphEncoder.html#standardEncode(byte[], byte[], byte[])"><CODE>MorphEncoder.standardEncode(byte[], byte[], byte[])</CODE></A> This
- method converts the wordForm, wordLemma and tag to the form:
-
-
- wordForm + Kending + tags
-
-
- where '+' is a separator, K is a character that specifies how many
- characters should be deleted from the end of the inflected form to
- produce the lexeme by concatenating the stripped string with the ending.
-<DT><A HREF="./morfologik/tools/IMessageLogger.html#startPart(java.lang.String)"><B>startPart(String)</B></A> -
-Method in interface morfologik.tools.<A HREF="./morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>
-<DD>Log message header and save current time.
-<DT><A HREF="./morfologik/tools/WriterMessageLogger.html#startPart(java.lang.String)"><B>startPart(String)</B></A> -
-Method in class morfologik.tools.<A HREF="./morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools">WriterMessageLogger</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa"><B>StateVisitor</B></A> - Interface in <A HREF="./morfologik/fsa/package-summary.html">morfologik.fsa</A><DD>State visitor.</DL>
-<HR>
-<A NAME="_T_"><!-- --></A><H2>
-<B>T</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/ConstantArcSizeFSA.html#TARGET_ADDRESS_SIZE"><B>TARGET_ADDRESS_SIZE</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>
-<DD>Size of the target address field (constant for the builder).
-<DT><A HREF="./morfologik/fsa/FSAUtils.html#toDot(morfologik.fsa.FSA, int)"><B>toDot(FSA, int)</B></A> -
-Static method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa">FSAUtils</A>
-<DD>Returns the right-language reachable from a given FSA node, formatted
- as an input for the graphviz package (expressed in the <code>dot</code>
- language).
-<DT><A HREF="./morfologik/fsa/FSAUtils.html#toDot(java.io.Writer, morfologik.fsa.FSA, int)"><B>toDot(Writer, FSA, int)</B></A> -
-Static method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa">FSAUtils</A>
-<DD>Saves the right-language reachable from a given FSA node, formatted
- as an input for the graphviz package (expressed in the <code>dot</code>
- language), to the given writer.
-<DT><A HREF="./morfologik/fsa/FSABuilder.InfoEntry.html#toString()"><B>toString()</B></A> -
-Method in enum morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSAInfo.html#toString()"><B>toString()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa">FSAInfo</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/util/Arrays.html#toString(byte[], int, int)"><B>toString(byte[], int, int)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/Arrays.html" title="class in morfologik.util">Arrays</A>
-<DD>Convert an array of strings to bytes.
-<DT><A HREF="./morfologik/util/BufferUtils.html#toString(java.nio.ByteBuffer)"><B>toString(ByteBuffer)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/BufferUtils.html" title="class in morfologik.util">BufferUtils</A>
-<DD>Convert a byte buffer to a string in platform default encoding.
-</DL>
-<HR>
-<A NAME="_U_"><!-- --></A><H2>
-<B>U</B></H2>
-<DL>
-<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html#usesInfixes"><B>usesInfixes</B></A> -
-Variable in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<DD>True if the dictionary was compiled with infix compression.
-<DT><A HREF="./morfologik/stemming/DictionaryMetadata.html#usesPrefixes"><B>usesPrefixes</B></A> -
-Variable in class morfologik.stemming.<A HREF="./morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>
-<DD>True if the dictionary was compiled with prefix compression.
-</DL>
-<HR>
-<A NAME="_V_"><!-- --></A><H2>
-<B>V</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/FSABuilder.InfoEntry.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> -
-Static method in enum morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>
-<DD>Returns the enum constant of this type with the specified name.
-<DT><A HREF="./morfologik/fsa/FSAFlags.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> -
-Static method in enum morfologik.fsa.<A HREF="./morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>
-<DD>Returns the enum constant of this type with the specified name.
-<DT><A HREF="./morfologik/tools/FSABuildTool.Format.html#valueOf(java.lang.String)"><B>valueOf(String)</B></A> -
-Static method in enum morfologik.tools.<A HREF="./morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A>
-<DD>Returns the enum constant of this type with the specified name.
-<DT><A HREF="./morfologik/fsa/FSABuilder.InfoEntry.html#values()"><B>values()</B></A> -
-Static method in enum morfologik.fsa.<A HREF="./morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>
-<DD>Returns an array containing the constants of this enum type, in
-the order they are declared.
-<DT><A HREF="./morfologik/fsa/FSAFlags.html#values()"><B>values()</B></A> -
-Static method in enum morfologik.fsa.<A HREF="./morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>
-<DD>Returns an array containing the constants of this enum type, in
-the order they are declared.
-<DT><A HREF="./morfologik/tools/FSABuildTool.Format.html#values()"><B>values()</B></A> -
-Static method in enum morfologik.tools.<A HREF="./morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A>
-<DD>Returns an array containing the constants of this enum type, in
-the order they are declared.
-<DT><A HREF="./morfologik/fsa/CFSA.html#VERSION"><B>VERSION</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>
-<DD>Automaton header version value.
-<DT><A HREF="./morfologik/fsa/CFSA2.html#VERSION"><B>VERSION</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>
-<DD>Automaton header version value.
-<DT><A HREF="./morfologik/fsa/FSA5.html#VERSION"><B>VERSION</B></A> -
-Static variable in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A>
-<DD>Automaton version as in the file header.
-<DT><A HREF="./morfologik/fsa/FSA.html#visitAllStates(T)"><B>visitAllStates(T)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Visit all states.
-<DT><A HREF="./morfologik/fsa/FSA.html#visitInPostOrder(T)"><B>visitInPostOrder(T)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Same as <A HREF="./morfologik/fsa/FSA.html#visitInPostOrder(T, int)"><CODE>FSA.visitInPostOrder(StateVisitor, int)</CODE></A>,
- starting from root automaton node.
-<DT><A HREF="./morfologik/fsa/FSA.html#visitInPostOrder(T, int)"><B>visitInPostOrder(T, int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Visits all states reachable from <code>node</code> in postorder.
-<DT><A HREF="./morfologik/fsa/FSA.html#visitInPreOrder(T)"><B>visitInPreOrder(T)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Same as <A HREF="./morfologik/fsa/FSA.html#visitInPreOrder(T, int)"><CODE>FSA.visitInPreOrder(StateVisitor, int)</CODE></A>, starting from root automaton node.
-<DT><A HREF="./morfologik/fsa/FSA.html#visitInPreOrder(T, int)"><B>visitInPreOrder(T, int)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>
-<DD>Visits all states in preorder.
-</DL>
-<HR>
-<A NAME="_W_"><!-- --></A><H2>
-<B>W</B></H2>
-<DL>
-<DT><A HREF="./morfologik/fsa/CFSA2Serializer.html#withAnnotationSeparator(byte)"><B>withAnnotationSeparator(byte)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA5Serializer.html#withAnnotationSeparator(byte)"><B>withAnnotationSeparator(byte)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A>
-<DD>Supports built-in annotation separator.
-<DT><A HREF="./morfologik/fsa/FSASerializer.html#withAnnotationSeparator(byte)"><B>withAnnotationSeparator(byte)</B></A> -
-Method in interface morfologik.fsa.<A HREF="./morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A>
-<DD>Supports built-in annotation separator.
-<DT><A HREF="./morfologik/fsa/CFSA2Serializer.html#withFiller(byte)"><B>withFiller(byte)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA5Serializer.html#withFiller(byte)"><B>withFiller(byte)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A>
-<DD>Supports built-in filler separator.
-<DT><A HREF="./morfologik/fsa/FSASerializer.html#withFiller(byte)"><B>withFiller(byte)</B></A> -
-Method in interface morfologik.fsa.<A HREF="./morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A>
-<DD>Supports built-in filler separator.
-<DT><A HREF="./morfologik/fsa/CFSA2Serializer.html#withLogger(morfologik.tools.IMessageLogger)"><B>withLogger(IMessageLogger)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/fsa/FSA5Serializer.html#withLogger(morfologik.tools.IMessageLogger)"><B>withLogger(IMessageLogger)</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A>
-<DD>Log extra messages during construction.
-<DT><A HREF="./morfologik/fsa/FSASerializer.html#withLogger(morfologik.tools.IMessageLogger)"><B>withLogger(IMessageLogger)</B></A> -
-Method in interface morfologik.fsa.<A HREF="./morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A>
-<DD>Log extra messages during construction.
-<DT><A HREF="./morfologik/fsa/CFSA2Serializer.html#withNumbers()"><B>withNumbers()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A>
-<DD>Serialize the automaton with the number of right-language sequences in
- each node.
-<DT><A HREF="./morfologik/fsa/FSA5Serializer.html#withNumbers()"><B>withNumbers()</B></A> -
-Method in class morfologik.fsa.<A HREF="./morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A>
-<DD>Serialize the automaton with the number of right-language sequences in
- each node.
-<DT><A HREF="./morfologik/fsa/FSASerializer.html#withNumbers()"><B>withNumbers()</B></A> -
-Method in interface morfologik.fsa.<A HREF="./morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A>
-<DD>Supports built-in right language count on nodes, speeding up perfect hash counts.
-<DT><A HREF="./morfologik/stemming/WordData.html" title="class in morfologik.stemming"><B>WordData</B></A> - Class in <A HREF="./morfologik/stemming/package-summary.html">morfologik.stemming</A><DD>Stem and tag data associated with a given word.<DT><A HREF="./morfologik/util/FileUtils.html#writeInt(java.io.OutputStream, int)"><B>writeInt(OutputStream, int)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools"><B>WriterMessageLogger</B></A> - Class in <A HREF="./morfologik/tools/package-summary.html">morfologik.tools</A><DD>A logger dumping info to <code>System.err</code>.<DT><A HREF="./morfologik/tools/WriterMessageLogger.html#WriterMessageLogger(java.io.PrintWriter)"><B>WriterMessageLogger(PrintWriter)</B></A> -
-Constructor for class morfologik.tools.<A HREF="./morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools">WriterMessageLogger</A>
-<DD>&nbsp;
-<DT><A HREF="./morfologik/util/FileUtils.html#writeShort(java.io.OutputStream, short)"><B>writeShort(OutputStream, short)</B></A> -
-Static method in class morfologik.util.<A HREF="./morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A>
-<DD>&nbsp;
-</DL>
-<HR>
-<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A>
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/index.html b/doc/api/index.html
deleted file mode 100644
index 866e191..0000000
--- a/doc/api/index.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Wed Jan 26 18:49:38 CET 2011-->
-<TITLE>
-Generated Documentation (Untitled)
-</TITLE>
-<SCRIPT type="text/javascript">
- targetPage = "" + window.location.search;
- if (targetPage != "" && targetPage != "undefined")
- targetPage = targetPage.substring(1);
- if (targetPage.indexOf(":") != -1)
- targetPage = "undefined";
- function loadFrames() {
- if (targetPage != "" && targetPage != "undefined")
- top.classFrame.location = top.targetPage;
- }
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-</HEAD>
-<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
-<FRAMESET rows="30%,70%" title="" onLoad="top.loadFrames()">
-<FRAME src="overview-frame.html" name="packageListFrame" title="All Packages">
-<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
-</FRAMESET>
-<FRAME src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
-<NOFRAMES>
-<H2>
-Frame Alert</H2>
-
-<P>
-This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
-<BR>
-Link to<A HREF="overview-summary.html">Non-frame version.</A>
-</NOFRAMES>
-</FRAMESET>
-</HTML>
diff --git a/doc/api/morfologik/fsa/CFSA.html b/doc/api/morfologik/fsa/CFSA.html
deleted file mode 100644
index 1b0b2ff..0000000
--- a/doc/api/morfologik/fsa/CFSA.html
+++ /dev/null
@@ -1,871 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-CFSA
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="CFSA";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/CFSA.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="CFSA.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class CFSA</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">morfologik.fsa.FSA</A>
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.CFSA</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>CFSA</B><DT>extends <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></DL>
-</PRE>
-
-<P>
-CFSA (Compact Finite State Automaton) binary format implementation. This is a
- slightly reorganized version of <A HREF="../../morfologik/fsa/FSA5.html" title="class in morfologik.fsa"><CODE>FSA5</CODE></A> offering smaller automata size
- at some (minor) performance penalty.
-
- <p><b>Note:</b> Serialize to <A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><CODE>CFSA2</CODE></A> for new code.</p>
-
- <p>The encoding of automaton body is as follows.</p>
-
- <pre>
- ---- FSA header (standard)
- Byte Description
- +-+-+-+-+-+-+-+-+\
- 0 | | | | | | | | | +------ '\'
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 1 | | | | | | | | | +------ 'f'
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 2 | | | | | | | | | +------ 's'
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 3 | | | | | | | | | +------ 'a'
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 4 | | | | | | | | | +------ version (fixed 0xc5)
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 5 | | | | | | | | | +------ filler character
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 6 | | | | | | | | | +------ annot character
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 7 |C|C|C|C|G|G|G|G| +------ C - node data size (ctl), G - address size (gotoLength)
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 8-32 | | | | | | | | | +------ labels mapped for type (1) of arc encoding.
- : : : : : : : : : |
- +-+-+-+-+-+-+-+-+/
-
- ---- Start of a node; only if automaton was compiled with NUMBERS option.
-
- Byte
- +-+-+-+-+-+-+-+-+\
- 0 | | | | | | | | | \ LSB
- +-+-+-+-+-+-+-+-+ +
- 1 | | | | | | | | | | number of strings recognized
- +-+-+-+-+-+-+-+-+ +----- by the automaton starting
- : : : : : : : : : | from this node.
- +-+-+-+-+-+-+-+-+ +
- ctl-1 | | | | | | | | | / MSB
- +-+-+-+-+-+-+-+-+/
-
- ---- A vector of node's arcs. Conditional format, depending on flags.
-
- 1) NEXT bit set, mapped arc label.
-
- +--------------- arc's label mapped in M bits if M's field value > 0
- | +------------- node pointed to is next
- | | +----------- the last arc of the node
- _______| | | +--------- the arc is final
- / | | | |
- +-+-+-+-+-+-+-+-+\
- 0 |M|M|M|M|M|1|L|F| +------ flags + (M) index of the mapped label.
- +-+-+-+-+-+-+-+-+/
-
- 2) NEXT bit set, label separate.
-
- +--------------- arc's label stored separately (M's field is zero).
- | +------------- node pointed to is next
- | | +----------- the last arc of the node
- | | | +--------- the arc is final
- | | | |
- +-+-+-+-+-+-+-+-+\
- 0 |0|0|0|0|0|1|L|F| +------ flags
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 1 | | | | | | | | | +------ label
- +-+-+-+-+-+-+-+-+/
-
- 3) NEXT bit not set. Full arc.
-
- +------------- node pointed to is next
- | +----------- the last arc of the node
- | | +--------- the arc is final
- | | |
- +-+-+-+-+-+-+-+-+\
- 0 |A|A|A|A|A|0|L|F| +------ flags + (A) address field, lower bits
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 1 | | | | | | | | | +------ label
- +-+-+-+-+-+-+-+-+/
- : : : : : : : : :
- +-+-+-+-+-+-+-+-+\
- gtl-1 |A|A|A|A|A|A|A|A| +------ address, continuation (MSB)
- +-+-+-+-+-+-+-+-+/
- </pre>
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#arcs">arcs</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An array of bytes with the internal representation of the automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#BIT_FINAL_ARC">BIT_FINAL_ARC</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bitmask indicating that an arc corresponds to the last character of a
- sequence available when building the automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#BIT_LAST_ARC">BIT_LAST_ARC</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bitmask indicating that an arc is the last one of the node's list and the
- following one belongs to another node.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#BIT_TARGET_NEXT">BIT_TARGET_NEXT</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bitmask indicating that the target node of this arc follows it in the
- compressed automaton structure (no goto field).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#gtl">gtl</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number of bytes each address takes in full, expanded form (goto length).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#labelMapping">labelMapping</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label mapping for arcs of type (1) (see class documentation).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#nodeDataLength">nodeDataLength</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The length of the node header structure (if the automaton was compiled with
- <code>NUMBERS</code> option).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#VERSION">VERSION</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Automaton header version value.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#CFSA(java.io.InputStream)">CFSA</A></B>(java.io.InputStream&nbsp;fsaStream)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new automaton, reading it from a file in FSA format, version 5.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#getArc(int, byte)">getArc</A></B>(int&nbsp;node,
- byte&nbsp;label)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#getArcLabel(int)">getArcLabel</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the label associated with a given <code>arc</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#getEndNode(int)">getEndNode</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the end node pointed to by a given <code>arc</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#getFirstArc(int)">getFirstArc</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#getFlags()">getFlags</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a set of flags for this FSA instance.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#getNextArc(int)">getNextArc</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#getRightLanguageCount(int)">getRightLanguageCount</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#getRootNode()">getRootNode</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the start node of this automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#isArcFinal(int)">isArcFinal</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#isArcLast(int)">isArcLast</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this arc has <code>NEXT</code> bit set.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#isArcTerminal(int)">isArcTerminal</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#isLabelCompressed(int)">isLabelCompressed</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the label is compressed inside flags byte.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA.html#isNextSet(int)">isNextSet</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_morfologik.fsa.FSA"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class morfologik.fsa.<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArcCount(int)">getArcCount</A>, <A HREF="../../morfologik/fsa/FSA.html#getSequences()">getSequences</A>, <A HREF="../../morfologik/fsa/FSA.html#getSequences(int)">getSequences</A>, <A HREF="../../morfologik/fsa/FSA.html#iterator()">iterator</A>, <A HREF="../../morfologik/fsa/FSA.html#read(java.io.InputStream)">read</A>, <A HREF="../../morfologik/fsa/FSA.html#visitAllStates(T)">visitAllStates</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T)">visitInPostOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T, int)">visitInPostOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T)">visitInPreOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T, int)">visitInPreOrder</A></CODE></TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="VERSION"><!-- --></A><H3>
-VERSION</H3>
-<PRE>
-public static final byte <B>VERSION</B></PRE>
-<DL>
-<DD>Automaton header version value.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.CFSA.VERSION">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_FINAL_ARC"><!-- --></A><H3>
-BIT_FINAL_ARC</H3>
-<PRE>
-public static final int <B>BIT_FINAL_ARC</B></PRE>
-<DL>
-<DD>Bitmask indicating that an arc corresponds to the last character of a
- sequence available when building the automaton.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.CFSA.BIT_FINAL_ARC">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_LAST_ARC"><!-- --></A><H3>
-BIT_LAST_ARC</H3>
-<PRE>
-public static final int <B>BIT_LAST_ARC</B></PRE>
-<DL>
-<DD>Bitmask indicating that an arc is the last one of the node's list and the
- following one belongs to another node.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.CFSA.BIT_LAST_ARC">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_TARGET_NEXT"><!-- --></A><H3>
-BIT_TARGET_NEXT</H3>
-<PRE>
-public static final int <B>BIT_TARGET_NEXT</B></PRE>
-<DL>
-<DD>Bitmask indicating that the target node of this arc follows it in the
- compressed automaton structure (no goto field).
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.CFSA.BIT_TARGET_NEXT">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="arcs"><!-- --></A><H3>
-arcs</H3>
-<PRE>
-public byte[] <B>arcs</B></PRE>
-<DL>
-<DD>An array of bytes with the internal representation of the automaton.
- Please see the documentation of this class for more information on how
- this structure is organized.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="nodeDataLength"><!-- --></A><H3>
-nodeDataLength</H3>
-<PRE>
-public final int <B>nodeDataLength</B></PRE>
-<DL>
-<DD>The length of the node header structure (if the automaton was compiled with
- <code>NUMBERS</code> option). Otherwise zero.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="gtl"><!-- --></A><H3>
-gtl</H3>
-<PRE>
-public final int <B>gtl</B></PRE>
-<DL>
-<DD>Number of bytes each address takes in full, expanded form (goto length).
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="labelMapping"><!-- --></A><H3>
-labelMapping</H3>
-<PRE>
-public final byte[] <B>labelMapping</B></PRE>
-<DL>
-<DD>Label mapping for arcs of type (1) (see class documentation). The array
- is indexed by mapped label's value and contains the original label.
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="CFSA(java.io.InputStream)"><!-- --></A><H3>
-CFSA</H3>
-<PRE>
-public <B>CFSA</B>(java.io.InputStream&nbsp;fsaStream)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Creates a new automaton, reading it from a file in FSA format, version 5.
-<P>
-<DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="getRootNode()"><!-- --></A><H3>
-getRootNode</H3>
-<PRE>
-public int <B>getRootNode</B>()</PRE>
-<DL>
-<DD>Returns the start node of this automaton. May return <code>0</code> if
- the start node is also an end node.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getRootNode()">getRootNode</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the root node of this automaton.
- Returns 0 if the start node is also the end node (the automaton
- is empty).</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFirstArc(int)"><!-- --></A><H3>
-getFirstArc</H3>
-<PRE>
-public final int <B>getFirstArc</B>(int&nbsp;node)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getFirstArc(int)">getFirstArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the first arc leaving <code>node</code>
- or 0 if the node has no outgoing arcs.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getNextArc(int)"><!-- --></A><H3>
-getNextArc</H3>
-<PRE>
-public final int <B>getNextArc</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getNextArc(int)">getNextArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the next arc after <code>arc</code> and
- leaving <code>node</code>. Zero is returned if no more arcs are
- available for the node.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArc(int, byte)"><!-- --></A><H3>
-getArc</H3>
-<PRE>
-public int <B>getArc</B>(int&nbsp;node,
- byte&nbsp;label)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArc(int, byte)">getArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of an arc leaving <code>node</code> and
- labeled with <code>label</code>. An identifier equal to 0 means
- the node has no outgoing arc labeled <code>label</code>.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getEndNode(int)"><!-- --></A><H3>
-getEndNode</H3>
-<PRE>
-public int <B>getEndNode</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Return the end node pointed to by a given <code>arc</code>. Terminal arcs
- (those that point to a terminal state) have no end node representation
- and throw a runtime exception.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)">getEndNode</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArcLabel(int)"><!-- --></A><H3>
-getArcLabel</H3>
-<PRE>
-public byte <B>getArcLabel</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Return the label associated with a given <code>arc</code>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArcLabel(int)">getArcLabel</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getRightLanguageCount(int)"><!-- --></A><H3>
-getRightLanguageCount</H3>
-<PRE>
-public int <B>getRightLanguageCount</B>(int&nbsp;node)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Overrides:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getRightLanguageCount(int)">getRightLanguageCount</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the number of sequences reachable from the given state if
- the automaton was compiled with <A HREF="../../morfologik/fsa/FSAFlags.html#NUMBERS"><CODE>FSAFlags.NUMBERS</CODE></A>. The size of
- the right language of the state, in other words.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcFinal(int)"><!-- --></A><H3>
-isArcFinal</H3>
-<PRE>
-public boolean <B>isArcFinal</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)">isArcFinal</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcTerminal(int)"><!-- --></A><H3>
-isArcTerminal</H3>
-<PRE>
-public boolean <B>isArcTerminal</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception). Implies <A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)"><CODE>FSA.isArcFinal(int)</CODE></A>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#isArcTerminal(int)">isArcTerminal</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcLast(int)"><!-- --></A><H3>
-isArcLast</H3>
-<PRE>
-public boolean <B>isArcLast</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if this arc has <code>NEXT</code> bit set.
-<P>
-<DD><DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/CFSA.html#BIT_LAST_ARC"><CODE>BIT_LAST_ARC</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isNextSet(int)"><!-- --></A><H3>
-isNextSet</H3>
-<PRE>
-public boolean <B>isNextSet</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD><DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/CFSA.html#BIT_TARGET_NEXT"><CODE>BIT_TARGET_NEXT</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isLabelCompressed(int)"><!-- --></A><H3>
-isLabelCompressed</H3>
-<PRE>
-public boolean <B>isLabelCompressed</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if the label is compressed inside flags byte.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFlags()"><!-- --></A><H3>
-getFlags</H3>
-<PRE>
-public java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt; <B>getFlags</B>()</PRE>
-<DL>
-<DD>Returns a set of flags for this FSA instance.
-
- <p>For this automaton version, an additional <A HREF="../../morfologik/fsa/FSAFlags.html#NUMBERS"><CODE>FSAFlags.NUMBERS</CODE></A> flag
- may be set to indicate the automaton contains extra fields for each node.</p>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getFlags()">getFlags</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/CFSA.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="CFSA.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/CFSA2.html b/doc/api/morfologik/fsa/CFSA2.html
deleted file mode 100644
index 78c00ef..0000000
--- a/doc/api/morfologik/fsa/CFSA2.html
+++ /dev/null
@@ -1,779 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-CFSA2
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="CFSA2";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/CFSA.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/CFSA2.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="CFSA2.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class CFSA2</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">morfologik.fsa.FSA</A>
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.CFSA2</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>CFSA2</B><DT>extends <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></DL>
-</PRE>
-
-<P>
-CFSA (Compact Finite State Automaton) binary format implementation, version 2:
- <ul>
- <li><A HREF="../../morfologik/fsa/CFSA2.html#BIT_TARGET_NEXT"><CODE>BIT_TARGET_NEXT</CODE></A> applicable on all arcs, not necessarily the last one.</li>
- <li>v-coded goto field</li>
- <li>v-coded perfect hashing numbers, if any</li>
- <li>31 most frequent labels integrated with flags byte</li>
- </ul>
-
- <p>The encoding of automaton body is as follows.</p>
-
- <pre>
- ---- CFSA header
- Byte Description
- +-+-+-+-+-+-+-+-+\
- 0 | | | | | | | | | +------ '\'
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 1 | | | | | | | | | +------ 'f'
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 2 | | | | | | | | | +------ 's'
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 3 | | | | | | | | | +------ 'a'
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 4 | | | | | | | | | +------ version (fixed 0xc6)
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 5 | | | | | | | | | +----\
- +-+-+-+-+-+-+-+-+/ \ flags [MSB first]
- +-+-+-+-+-+-+-+-+\ /
- 6 | | | | | | | | | +----/
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 7 | | | | | | | | | +------ label lookup table size
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 8-32 | | | | | | | | | +------ label value lookup table
- : : : : : : : : : |
- +-+-+-+-+-+-+-+-+/
-
- ---- Start of a node; only if automaton was compiled with NUMBERS option.
-
- Byte
- +-+-+-+-+-+-+-+-+\
- 0 | | | | | | | | | \
- +-+-+-+-+-+-+-+-+ +
- 1 | | | | | | | | | | number of strings recognized
- +-+-+-+-+-+-+-+-+ +----- by the automaton starting
- : : : : : : : : : | from this node. v-coding
- +-+-+-+-+-+-+-+-+ +
- | | | | | | | | | /
- +-+-+-+-+-+-+-+-+/
-
- ---- A vector of this node's arcs. An arc's layout depends on the combination of flags.
-
- 1) NEXT bit set, mapped arc label.
-
- +----------------------- node pointed to is next
- | +--------------------- the last arc of the node
- | | +------------------- this arc leads to a final state (acceptor)
- | | | _______+--------- arc's label; indexed if M > 0, otherwise explicit label follows
- | | | / | | | |
- +-+-+-+-+-+-+-+-+\
- 0 |N|L|F|M|M|M|M|M| +------ flags + (M) index of the mapped label.
- +-+-+-+-+-+-+-+-+/
- +-+-+-+-+-+-+-+-+\
- 1 | | | | | | | | | +------ optional label if M == 0
- +-+-+-+-+-+-+-+-+/
- : : : : : : : : :
- +-+-+-+-+-+-+-+-+\
- |A|A|A|A|A|A|A|A| +------ v-coded goto address
- +-+-+-+-+-+-+-+-+/
- </pre>
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#arcs">arcs</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An array of bytes with the internal representation of the automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#BIT_FINAL_ARC">BIT_FINAL_ARC</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The arc corresponds to the last character of a sequence
- available when building the automaton (acceptor transition).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#BIT_LAST_ARC">BIT_LAST_ARC</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The arc is the last one from the current node's arcs list.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#BIT_TARGET_NEXT">BIT_TARGET_NEXT</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The target node of this arc follows the last arc of the current state
- (no goto field).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#labelMapping">labelMapping</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label mapping for M-indexed labels.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#VERSION">VERSION</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Automaton header version value.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#CFSA2(java.io.InputStream)">CFSA2</A></B>(java.io.InputStream&nbsp;in)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads an automaton from a byte stream.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#getArc(int, byte)">getArc</A></B>(int&nbsp;node,
- byte&nbsp;label)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#getArcLabel(int)">getArcLabel</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the label associated with a given <code>arc</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#getEndNode(int)">getEndNode</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the end node pointed to by a given <code>arc</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#getFirstArc(int)">getFirstArc</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#getFlags()">getFlags</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a set of flags for this FSA instance.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#getNextArc(int)">getNextArc</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#getRightLanguageCount(int)">getRightLanguageCount</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#getRootNode()">getRootNode</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#isArcFinal(int)">isArcFinal</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#isArcLast(int)">isArcLast</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this arc has <code>NEXT</code> bit set.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#isArcTerminal(int)">isArcTerminal</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2.html#isNextSet(int)">isNextSet</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_morfologik.fsa.FSA"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class morfologik.fsa.<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArcCount(int)">getArcCount</A>, <A HREF="../../morfologik/fsa/FSA.html#getSequences()">getSequences</A>, <A HREF="../../morfologik/fsa/FSA.html#getSequences(int)">getSequences</A>, <A HREF="../../morfologik/fsa/FSA.html#iterator()">iterator</A>, <A HREF="../../morfologik/fsa/FSA.html#read(java.io.InputStream)">read</A>, <A HREF="../../morfologik/fsa/FSA.html#visitAllStates(T)">visitAllStates</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T)">visitInPostOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T, int)">visitInPostOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T)">visitInPreOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T, int)">visitInPreOrder</A></CODE></TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="VERSION"><!-- --></A><H3>
-VERSION</H3>
-<PRE>
-public static final byte <B>VERSION</B></PRE>
-<DL>
-<DD>Automaton header version value.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.CFSA2.VERSION">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_TARGET_NEXT"><!-- --></A><H3>
-BIT_TARGET_NEXT</H3>
-<PRE>
-public static final int <B>BIT_TARGET_NEXT</B></PRE>
-<DL>
-<DD>The target node of this arc follows the last arc of the current state
- (no goto field).
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.CFSA2.BIT_TARGET_NEXT">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_LAST_ARC"><!-- --></A><H3>
-BIT_LAST_ARC</H3>
-<PRE>
-public static final int <B>BIT_LAST_ARC</B></PRE>
-<DL>
-<DD>The arc is the last one from the current node's arcs list.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.CFSA2.BIT_LAST_ARC">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_FINAL_ARC"><!-- --></A><H3>
-BIT_FINAL_ARC</H3>
-<PRE>
-public static final int <B>BIT_FINAL_ARC</B></PRE>
-<DL>
-<DD>The arc corresponds to the last character of a sequence
- available when building the automaton (acceptor transition).
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.CFSA2.BIT_FINAL_ARC">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="arcs"><!-- --></A><H3>
-arcs</H3>
-<PRE>
-public byte[] <B>arcs</B></PRE>
-<DL>
-<DD>An array of bytes with the internal representation of the automaton.
- Please see the documentation of this class for more information on how
- this structure is organized.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="labelMapping"><!-- --></A><H3>
-labelMapping</H3>
-<PRE>
-public final byte[] <B>labelMapping</B></PRE>
-<DL>
-<DD>Label mapping for M-indexed labels.
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="CFSA2(java.io.InputStream)"><!-- --></A><H3>
-CFSA2</H3>
-<PRE>
-public <B>CFSA2</B>(java.io.InputStream&nbsp;in)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Reads an automaton from a byte stream.
-<P>
-<DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="getRootNode()"><!-- --></A><H3>
-getRootNode</H3>
-<PRE>
-public int <B>getRootNode</B>()</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getRootNode()">getRootNode</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the root node of this automaton.
- Returns 0 if the start node is also the end node (the automaton
- is empty).</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFirstArc(int)"><!-- --></A><H3>
-getFirstArc</H3>
-<PRE>
-public final int <B>getFirstArc</B>(int&nbsp;node)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getFirstArc(int)">getFirstArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the first arc leaving <code>node</code>
- or 0 if the node has no outgoing arcs.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getNextArc(int)"><!-- --></A><H3>
-getNextArc</H3>
-<PRE>
-public final int <B>getNextArc</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getNextArc(int)">getNextArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the next arc after <code>arc</code> and
- leaving <code>node</code>. Zero is returned if no more arcs are
- available for the node.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArc(int, byte)"><!-- --></A><H3>
-getArc</H3>
-<PRE>
-public int <B>getArc</B>(int&nbsp;node,
- byte&nbsp;label)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArc(int, byte)">getArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of an arc leaving <code>node</code> and
- labeled with <code>label</code>. An identifier equal to 0 means
- the node has no outgoing arc labeled <code>label</code>.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getEndNode(int)"><!-- --></A><H3>
-getEndNode</H3>
-<PRE>
-public int <B>getEndNode</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Return the end node pointed to by a given <code>arc</code>. Terminal arcs
- (those that point to a terminal state) have no end node representation
- and throw a runtime exception.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)">getEndNode</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArcLabel(int)"><!-- --></A><H3>
-getArcLabel</H3>
-<PRE>
-public byte <B>getArcLabel</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Return the label associated with a given <code>arc</code>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArcLabel(int)">getArcLabel</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getRightLanguageCount(int)"><!-- --></A><H3>
-getRightLanguageCount</H3>
-<PRE>
-public int <B>getRightLanguageCount</B>(int&nbsp;node)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Overrides:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getRightLanguageCount(int)">getRightLanguageCount</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the number of sequences reachable from the given state if
- the automaton was compiled with <A HREF="../../morfologik/fsa/FSAFlags.html#NUMBERS"><CODE>FSAFlags.NUMBERS</CODE></A>. The size of
- the right language of the state, in other words.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcFinal(int)"><!-- --></A><H3>
-isArcFinal</H3>
-<PRE>
-public boolean <B>isArcFinal</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)">isArcFinal</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcTerminal(int)"><!-- --></A><H3>
-isArcTerminal</H3>
-<PRE>
-public boolean <B>isArcTerminal</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception). Implies <A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)"><CODE>FSA.isArcFinal(int)</CODE></A>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#isArcTerminal(int)">isArcTerminal</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcLast(int)"><!-- --></A><H3>
-isArcLast</H3>
-<PRE>
-public boolean <B>isArcLast</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if this arc has <code>NEXT</code> bit set.
-<P>
-<DD><DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/CFSA2.html#BIT_LAST_ARC"><CODE>BIT_LAST_ARC</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isNextSet(int)"><!-- --></A><H3>
-isNextSet</H3>
-<PRE>
-public boolean <B>isNextSet</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD><DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/CFSA2.html#BIT_TARGET_NEXT"><CODE>BIT_TARGET_NEXT</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFlags()"><!-- --></A><H3>
-getFlags</H3>
-<PRE>
-public java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt; <B>getFlags</B>()</PRE>
-<DL>
-<DD>Returns a set of flags for this FSA instance.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getFlags()">getFlags</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/CFSA.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/CFSA2.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="CFSA2.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/CFSA2Serializer.html b/doc/api/morfologik/fsa/CFSA2Serializer.html
deleted file mode 100644
index 159fe3e..0000000
--- a/doc/api/morfologik/fsa/CFSA2Serializer.html
+++ /dev/null
@@ -1,414 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-CFSA2Serializer
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="CFSA2Serializer";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/CFSA2Serializer.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="CFSA2Serializer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class CFSA2Serializer</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.CFSA2Serializer</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>CFSA2Serializer</B><DT>extends java.lang.Object<DT>implements <A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></DL>
-</PRE>
-
-<P>
-Serializes in-memory <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> graphs to <A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><CODE>CFSA2</CODE></A>.
-
- <p>
- It is possible to serialize the automaton with numbers required for perfect
- hashing. See <A HREF="../../morfologik/fsa/CFSA2Serializer.html#withNumbers()"><CODE>withNumbers()</CODE></A> method.
- </p>
-<P>
-
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><CODE>CFSA2</CODE></A>,
-<A HREF="../../morfologik/fsa/FSA.html#read(java.io.InputStream)"><CODE>FSA.read(java.io.InputStream)</CODE></A></DL>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2Serializer.html#CFSA2Serializer()">CFSA2Serializer</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2Serializer.html#getFlags()">getFlags</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return supported flags.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;T extends java.io.OutputStream&gt;
-<BR>
-T</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2Serializer.html#serialize(morfologik.fsa.FSA, T)">serialize</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- T&nbsp;os)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Serializes any <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> to <A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><CODE>CFSA2</CODE></A> stream.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2Serializer.html#withAnnotationSeparator(byte)">withAnnotationSeparator</A></B>(byte&nbsp;annotationSeparator)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supports built-in annotation separator.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2Serializer.html#withFiller(byte)">withFiller</A></B>(byte&nbsp;filler)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supports built-in filler separator.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2Serializer.html#withLogger(morfologik.tools.IMessageLogger)">withLogger</A></B>(<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>&nbsp;logger)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log extra messages during construction.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/CFSA2Serializer.html#withNumbers()">withNumbers</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Serialize the automaton with the number of right-language sequences in
- each node.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="CFSA2Serializer()"><!-- --></A><H3>
-CFSA2Serializer</H3>
-<PRE>
-public <B>CFSA2Serializer</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="withNumbers()"><!-- --></A><H3>
-withNumbers</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A> <B>withNumbers</B>()</PRE>
-<DL>
-<DD>Serialize the automaton with the number of right-language sequences in
- each node. This is required to implement perfect hashing. The numbering
- also preserves the order of input sequences.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withNumbers()">withNumbers</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the same object for easier call chaining.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="serialize(morfologik.fsa.FSA,java.io.OutputStream)"><!-- --></A><A NAME="serialize(morfologik.fsa.FSA, T)"><!-- --></A><H3>
-serialize</H3>
-<PRE>
-public &lt;T extends java.io.OutputStream&gt; T <B>serialize</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- T&nbsp;os)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Serializes any <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> to <A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><CODE>CFSA2</CODE></A> stream.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#serialize(morfologik.fsa.FSA, T)">serialize</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns <code>os</code> for chaining.
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE><DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/CFSA2Serializer.html#withNumbers"><CODE>withNumbers</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFlags()"><!-- --></A><H3>
-getFlags</H3>
-<PRE>
-public java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt; <B>getFlags</B>()</PRE>
-<DL>
-<DD>Return supported flags.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#getFlags()">getFlags</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="withFiller(byte)"><!-- --></A><H3>
-withFiller</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A> <B>withFiller</B>(byte&nbsp;filler)</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withFiller(byte)">FSASerializer</A></CODE></B></DD>
-<DD>Supports built-in filler separator. Only if <A HREF="../../morfologik/fsa/FSASerializer.html#getFlags()"><CODE>FSASerializer.getFlags()</CODE></A> returns
- <A HREF="../../morfologik/fsa/FSAFlags.html#SEPARATORS"><CODE>FSAFlags.SEPARATORS</CODE></A>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withFiller(byte)">withFiller</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="withAnnotationSeparator(byte)"><!-- --></A><H3>
-withAnnotationSeparator</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A> <B>withAnnotationSeparator</B>(byte&nbsp;annotationSeparator)</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withAnnotationSeparator(byte)">FSASerializer</A></CODE></B></DD>
-<DD>Supports built-in annotation separator. Only if <A HREF="../../morfologik/fsa/FSASerializer.html#getFlags()"><CODE>FSASerializer.getFlags()</CODE></A> returns
- <A HREF="../../morfologik/fsa/FSAFlags.html#SEPARATORS"><CODE>FSAFlags.SEPARATORS</CODE></A>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withAnnotationSeparator(byte)">withAnnotationSeparator</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="withLogger(morfologik.tools.IMessageLogger)"><!-- --></A><H3>
-withLogger</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A> <B>withLogger</B>(<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>&nbsp;logger)</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withLogger(morfologik.tools.IMessageLogger)">FSASerializer</A></CODE></B></DD>
-<DD>Log extra messages during construction.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withLogger(morfologik.tools.IMessageLogger)">withLogger</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/CFSA2Serializer.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="CFSA2Serializer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/ConstantArcSizeFSA.html b/doc/api/morfologik/fsa/ConstantArcSizeFSA.html
deleted file mode 100644
index e73b13a..0000000
--- a/doc/api/morfologik/fsa/ConstantArcSizeFSA.html
+++ /dev/null
@@ -1,654 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-ConstantArcSizeFSA
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="ConstantArcSizeFSA";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/ConstantArcSizeFSA.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="ConstantArcSizeFSA.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class ConstantArcSizeFSA</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">morfologik.fsa.FSA</A>
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.ConstantArcSizeFSA</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>ConstantArcSizeFSA</B><DT>extends <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></DL>
-</PRE>
-
-<P>
-An FSA with constant-size arc representation produced directly
- by <A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><CODE>FSABuilder</CODE></A>.
-<P>
-
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><CODE>FSABuilder</CODE></A></DL>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#ADDRESS_OFFSET">ADDRESS_OFFSET</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset of the address field inside an arc.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#ARC_SIZE">ARC_SIZE</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size of a single arc structure.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#BIT_ARC_FINAL">BIT_ARC_FINAL</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An arc flag indicating the target node of an arc corresponds to a final
- state.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#BIT_ARC_LAST">BIT_ARC_LAST</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An arc flag indicating the arc is last within its state.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#FLAGS_OFFSET">FLAGS_OFFSET</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset of the flags field inside an arc.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#FLAGS_SIZE">FLAGS_SIZE</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size of the flags field (constant for the builder).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#LABEL_OFFSET">LABEL_OFFSET</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset of the label field inside an arc.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#LABEL_SIZE">LABEL_SIZE</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size of the label field (constant for the builder).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#TARGET_ADDRESS_SIZE">TARGET_ADDRESS_SIZE</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size of the target address field (constant for the builder).</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#getArc(int, byte)">getArc</A></B>(int&nbsp;node,
- byte&nbsp;label)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#getArcLabel(int)">getArcLabel</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the label associated with a given <code>arc</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#getEndNode(int)">getEndNode</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the end node pointed to by a given <code>arc</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#getFirstArc(int)">getFirstArc</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#getFlags()">getFlags</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a set of flags for this FSA instance.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#getNextArc(int)">getNextArc</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#getRootNode()">getRootNode</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#isArcFinal(int)">isArcFinal</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html#isArcTerminal(int)">isArcTerminal</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception).</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_morfologik.fsa.FSA"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class morfologik.fsa.<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArcCount(int)">getArcCount</A>, <A HREF="../../morfologik/fsa/FSA.html#getRightLanguageCount(int)">getRightLanguageCount</A>, <A HREF="../../morfologik/fsa/FSA.html#getSequences()">getSequences</A>, <A HREF="../../morfologik/fsa/FSA.html#getSequences(int)">getSequences</A>, <A HREF="../../morfologik/fsa/FSA.html#iterator()">iterator</A>, <A HREF="../../morfologik/fsa/FSA.html#read(java.io.InputStream)">read</A>, <A HREF="../../morfologik/fsa/FSA.html#visitAllStates(T)">visitAllStates</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T)">visitInPostOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T, int)">visitInPostOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T)">visitInPreOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T, int)">visitInPreOrder</A></CODE></TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="TARGET_ADDRESS_SIZE"><!-- --></A><H3>
-TARGET_ADDRESS_SIZE</H3>
-<PRE>
-public static final int <B>TARGET_ADDRESS_SIZE</B></PRE>
-<DL>
-<DD>Size of the target address field (constant for the builder).
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.ConstantArcSizeFSA.TARGET_ADDRESS_SIZE">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="FLAGS_SIZE"><!-- --></A><H3>
-FLAGS_SIZE</H3>
-<PRE>
-public static final int <B>FLAGS_SIZE</B></PRE>
-<DL>
-<DD>Size of the flags field (constant for the builder).
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.ConstantArcSizeFSA.FLAGS_SIZE">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="LABEL_SIZE"><!-- --></A><H3>
-LABEL_SIZE</H3>
-<PRE>
-public static final int <B>LABEL_SIZE</B></PRE>
-<DL>
-<DD>Size of the label field (constant for the builder).
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.ConstantArcSizeFSA.LABEL_SIZE">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="ARC_SIZE"><!-- --></A><H3>
-ARC_SIZE</H3>
-<PRE>
-public static final int <B>ARC_SIZE</B></PRE>
-<DL>
-<DD>Size of a single arc structure.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.ConstantArcSizeFSA.ARC_SIZE">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="FLAGS_OFFSET"><!-- --></A><H3>
-FLAGS_OFFSET</H3>
-<PRE>
-public static final int <B>FLAGS_OFFSET</B></PRE>
-<DL>
-<DD>Offset of the flags field inside an arc.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.ConstantArcSizeFSA.FLAGS_OFFSET">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="LABEL_OFFSET"><!-- --></A><H3>
-LABEL_OFFSET</H3>
-<PRE>
-public static final int <B>LABEL_OFFSET</B></PRE>
-<DL>
-<DD>Offset of the label field inside an arc.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.ConstantArcSizeFSA.LABEL_OFFSET">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="ADDRESS_OFFSET"><!-- --></A><H3>
-ADDRESS_OFFSET</H3>
-<PRE>
-public static final int <B>ADDRESS_OFFSET</B></PRE>
-<DL>
-<DD>Offset of the address field inside an arc.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.ConstantArcSizeFSA.ADDRESS_OFFSET">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_ARC_FINAL"><!-- --></A><H3>
-BIT_ARC_FINAL</H3>
-<PRE>
-public static final int <B>BIT_ARC_FINAL</B></PRE>
-<DL>
-<DD>An arc flag indicating the target node of an arc corresponds to a final
- state.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.ConstantArcSizeFSA.BIT_ARC_FINAL">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_ARC_LAST"><!-- --></A><H3>
-BIT_ARC_LAST</H3>
-<PRE>
-public static final int <B>BIT_ARC_LAST</B></PRE>
-<DL>
-<DD>An arc flag indicating the arc is last within its state.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.ConstantArcSizeFSA.BIT_ARC_LAST">Constant Field Values</A></DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="getRootNode()"><!-- --></A><H3>
-getRootNode</H3>
-<PRE>
-public int <B>getRootNode</B>()</PRE>
-<DL>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getRootNode()">getRootNode</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the root node of this automaton.
- Returns 0 if the start node is also the end node (the automaton
- is empty).</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFirstArc(int)"><!-- --></A><H3>
-getFirstArc</H3>
-<PRE>
-public int <B>getFirstArc</B>(int&nbsp;node)</PRE>
-<DL>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getFirstArc(int)">getFirstArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the first arc leaving <code>node</code>
- or 0 if the node has no outgoing arcs.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArc(int, byte)"><!-- --></A><H3>
-getArc</H3>
-<PRE>
-public int <B>getArc</B>(int&nbsp;node,
- byte&nbsp;label)</PRE>
-<DL>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArc(int, byte)">getArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of an arc leaving <code>node</code> and
- labeled with <code>label</code>. An identifier equal to 0 means
- the node has no outgoing arc labeled <code>label</code>.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getNextArc(int)"><!-- --></A><H3>
-getNextArc</H3>
-<PRE>
-public int <B>getNextArc</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getNextArc(int)">getNextArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the next arc after <code>arc</code> and
- leaving <code>node</code>. Zero is returned if no more arcs are
- available for the node.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArcLabel(int)"><!-- --></A><H3>
-getArcLabel</H3>
-<PRE>
-public byte <B>getArcLabel</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD><B>Description copied from class: <CODE><A HREF="../../morfologik/fsa/FSA.html#getArcLabel(int)">FSA</A></CODE></B></DD>
-<DD>Return the label associated with a given <code>arc</code>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArcLabel(int)">getArcLabel</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcFinal(int)"><!-- --></A><H3>
-isArcFinal</H3>
-<PRE>
-public boolean <B>isArcFinal</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD><B>Description copied from class: <CODE><A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)">FSA</A></CODE></B></DD>
-<DD>Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)">isArcFinal</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcTerminal(int)"><!-- --></A><H3>
-isArcTerminal</H3>
-<PRE>
-public boolean <B>isArcTerminal</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD><B>Description copied from class: <CODE><A HREF="../../morfologik/fsa/FSA.html#isArcTerminal(int)">FSA</A></CODE></B></DD>
-<DD>Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception). Implies <A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)"><CODE>FSA.isArcFinal(int)</CODE></A>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#isArcTerminal(int)">isArcTerminal</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getEndNode(int)"><!-- --></A><H3>
-getEndNode</H3>
-<PRE>
-public int <B>getEndNode</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD><B>Description copied from class: <CODE><A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)">FSA</A></CODE></B></DD>
-<DD>Return the end node pointed to by a given <code>arc</code>. Terminal arcs
- (those that point to a terminal state) have no end node representation
- and throw a runtime exception.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)">getEndNode</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFlags()"><!-- --></A><H3>
-getFlags</H3>
-<PRE>
-public java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt; <B>getFlags</B>()</PRE>
-<DL>
-<DD><B>Description copied from class: <CODE><A HREF="../../morfologik/fsa/FSA.html#getFlags()">FSA</A></CODE></B></DD>
-<DD>Returns a set of flags for this FSA instance.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getFlags()">getFlags</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/ConstantArcSizeFSA.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="ConstantArcSizeFSA.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSA.html b/doc/api/morfologik/fsa/FSA.html
deleted file mode 100644
index b75dd1a..0000000
--- a/doc/api/morfologik/fsa/FSA.html
+++ /dev/null
@@ -1,855 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSA
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSA";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSA5.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSA.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSA.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class FSA</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSA</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</DD>
-</DL>
-<DL>
-<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A>, <A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A>, <A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A>, <A HREF="../../morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public abstract class <B>FSA</B><DT>extends java.lang.Object<DT>implements java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</DL>
-</PRE>
-
-<P>
-This is a top abstract class for handling finite state automata. These
- automata are arc-based, a design described in Jan Daciuk's <i>Incremental
- Construction of Finite-State Automata and Transducers, and Their Use in the
- Natural Language Processing</i> (PhD thesis, Technical University of Gdansk).
-
- <p>
- Concrete subclasses (implementations) provide varying tradeoffs and features:
- traversal speed vs. memory size, for example.
- </p>
-<P>
-
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><CODE>FSABuilder</CODE></A></DL>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#FSA()">FSA</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>abstract &nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getArc(int, byte)">getArc</A></B>(int&nbsp;node,
- byte&nbsp;label)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getArcCount(int)">getArcCount</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculates the number of arcs of a given node.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>abstract &nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getArcLabel(int)">getArcLabel</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the label associated with a given <code>arc</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>abstract &nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)">getEndNode</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the end node pointed to by a given <code>arc</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>abstract &nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getFirstArc(int)">getFirstArc</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>abstract &nbsp;java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getFlags()">getFlags</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a set of flags for this FSA instance.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>abstract &nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getNextArc(int)">getNextArc</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getRightLanguageCount(int)">getRightLanguageCount</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>abstract &nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getRootNode()">getRootNode</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getSequences()">getSequences</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An alias of calling <A HREF="../../morfologik/fsa/FSA.html#iterator()"><CODE>iterator()</CODE></A> directly (<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> is also
- <CODE>Iterable</CODE>).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#getSequences(int)">getSequences</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an iterator over all binary sequences starting at the given FSA
- state (node) and ending in final nodes.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>abstract &nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)">isArcFinal</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>abstract &nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#isArcTerminal(int)">isArcTerminal</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)"><CODE>getEndNode(int)</CODE></A> will throw an
- exception).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Iterator&lt;java.nio.ByteBuffer&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#iterator()">iterator</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an iterator over all binary sequences starting from the initial
- FSA state (node) and ending in final nodes.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;T extends <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&gt;
-<BR>
-T</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#read(java.io.InputStream)">read</A></B>(java.io.InputStream&nbsp;in)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A factory for reading automata in any of the supported versions.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;T extends <A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>&gt;
-<BR>
-T</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#visitAllStates(T)">visitAllStates</A></B>(T&nbsp;v)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visit all states.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;T extends <A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>&gt;
-<BR>
-T</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T)">visitInPostOrder</A></B>(T&nbsp;v)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as <A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T, int)"><CODE>visitInPostOrder(StateVisitor, int)</CODE></A>,
- starting from root automaton node.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;T extends <A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>&gt;
-<BR>
-T</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T, int)">visitInPostOrder</A></B>(T&nbsp;v,
- int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visits all states reachable from <code>node</code> in postorder.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;T extends <A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>&gt;
-<BR>
-T</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T)">visitInPreOrder</A></B>(T&nbsp;v)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as <A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T, int)"><CODE>visitInPreOrder(StateVisitor, int)</CODE></A>, starting from root automaton node.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;T extends <A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>&gt;
-<BR>
-T</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T, int)">visitInPreOrder</A></B>(T&nbsp;v,
- int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visits all states in preorder.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSA()"><!-- --></A><H3>
-FSA</H3>
-<PRE>
-public <B>FSA</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="getRootNode()"><!-- --></A><H3>
-getRootNode</H3>
-<PRE>
-public abstract int <B>getRootNode</B>()</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the root node of this automaton.
- Returns 0 if the start node is also the end node (the automaton
- is empty).</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFirstArc(int)"><!-- --></A><H3>
-getFirstArc</H3>
-<PRE>
-public abstract int <B>getFirstArc</B>(int&nbsp;node)</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the first arc leaving <code>node</code>
- or 0 if the node has no outgoing arcs.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getNextArc(int)"><!-- --></A><H3>
-getNextArc</H3>
-<PRE>
-public abstract int <B>getNextArc</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the next arc after <code>arc</code> and
- leaving <code>node</code>. Zero is returned if no more arcs are
- available for the node.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArc(int, byte)"><!-- --></A><H3>
-getArc</H3>
-<PRE>
-public abstract int <B>getArc</B>(int&nbsp;node,
- byte&nbsp;label)</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of an arc leaving <code>node</code> and
- labeled with <code>label</code>. An identifier equal to 0 means
- the node has no outgoing arc labeled <code>label</code>.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArcLabel(int)"><!-- --></A><H3>
-getArcLabel</H3>
-<PRE>
-public abstract byte <B>getArcLabel</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Return the label associated with a given <code>arc</code>.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcFinal(int)"><!-- --></A><H3>
-isArcFinal</H3>
-<PRE>
-public abstract boolean <B>isArcFinal</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcTerminal(int)"><!-- --></A><H3>
-isArcTerminal</H3>
-<PRE>
-public abstract boolean <B>isArcTerminal</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)"><CODE>getEndNode(int)</CODE></A> will throw an
- exception). Implies <A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)"><CODE>isArcFinal(int)</CODE></A>.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getEndNode(int)"><!-- --></A><H3>
-getEndNode</H3>
-<PRE>
-public abstract int <B>getEndNode</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Return the end node pointed to by a given <code>arc</code>. Terminal arcs
- (those that point to a terminal state) have no end node representation
- and throw a runtime exception.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFlags()"><!-- --></A><H3>
-getFlags</H3>
-<PRE>
-public abstract java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt; <B>getFlags</B>()</PRE>
-<DL>
-<DD>Returns a set of flags for this FSA instance.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArcCount(int)"><!-- --></A><H3>
-getArcCount</H3>
-<PRE>
-public int <B>getArcCount</B>(int&nbsp;node)</PRE>
-<DL>
-<DD>Calculates the number of arcs of a given node. Unless really required,
- use the following idiom for looping through all arcs:
- <pre>
- for (int arc = fsa.getFirstArc(node); arc != 0; arc = fsa.getNextArc(arc)) {
- }
- </pre>
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getRightLanguageCount(int)"><!-- --></A><H3>
-getRightLanguageCount</H3>
-<PRE>
-public int <B>getRightLanguageCount</B>(int&nbsp;node)</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the number of sequences reachable from the given state if
- the automaton was compiled with <A HREF="../../morfologik/fsa/FSAFlags.html#NUMBERS"><CODE>FSAFlags.NUMBERS</CODE></A>. The size of
- the right language of the state, in other words.
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.UnsupportedOperationException</CODE> - If the automaton was not compiled with
- <A HREF="../../morfologik/fsa/FSAFlags.html#NUMBERS"><CODE>FSAFlags.NUMBERS</CODE></A>. The value can then be computed by manual count
- of <A HREF="../../morfologik/fsa/FSA.html#getSequences(int)"><CODE>getSequences(int)</CODE></A>.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getSequences(int)"><!-- --></A><H3>
-getSequences</H3>
-<PRE>
-public java.lang.Iterable&lt;java.nio.ByteBuffer&gt; <B>getSequences</B>(int&nbsp;node)</PRE>
-<DL>
-<DD>Returns an iterator over all binary sequences starting at the given FSA
- state (node) and ending in final nodes. This corresponds to a set of
- suffixes of a given prefix from all sequences stored in the automaton.
-
- <p>
- The returned iterator is a <CODE>ByteBuffer</CODE> whose contents changes on
- each call to <CODE>Iterator.next()</CODE>. The keep the contents between calls
- to <CODE>Iterator.next()</CODE>, one must copy the buffer to some other
- location.
- </p>
-
- <p>
- <b>Important.</b> It is guaranteed that the returned byte buffer is
- backed by a byte array and that the content of the byte buffer starts at
- the array's index 0.
- </p>
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-<DT><B>See Also:</B><DD><CODE>Iterable</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getSequences()"><!-- --></A><H3>
-getSequences</H3>
-<PRE>
-public final java.lang.Iterable&lt;java.nio.ByteBuffer&gt; <B>getSequences</B>()</PRE>
-<DL>
-<DD>An alias of calling <A HREF="../../morfologik/fsa/FSA.html#iterator()"><CODE>iterator()</CODE></A> directly (<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> is also
- <CODE>Iterable</CODE>).
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="iterator()"><!-- --></A><H3>
-iterator</H3>
-<PRE>
-public final java.util.Iterator&lt;java.nio.ByteBuffer&gt; <B>iterator</B>()</PRE>
-<DL>
-<DD>Returns an iterator over all binary sequences starting from the initial
- FSA state (node) and ending in final nodes. The returned iterator is a
- <CODE>ByteBuffer</CODE> whose contents changes on each call to
- <CODE>Iterator.next()</CODE>. The keep the contents between calls to
- <CODE>Iterator.next()</CODE>, one must copy the buffer to some other location.
-
- <p>
- <b>Important.</b> It is guaranteed that the returned byte buffer is
- backed by a byte array and that the content of the byte buffer starts at
- the array's index 0.
- </p>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE>iterator</CODE> in interface <CODE>java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</CODE></DL>
-</DD>
-<DD><DL>
-<DT><B>See Also:</B><DD><CODE>Iterable</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="visitAllStates(morfologik.fsa.StateVisitor)"><!-- --></A><A NAME="visitAllStates(T)"><!-- --></A><H3>
-visitAllStates</H3>
-<PRE>
-public &lt;T extends <A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>&gt; T <B>visitAllStates</B>(T&nbsp;v)</PRE>
-<DL>
-<DD>Visit all states. The order of visiting is undefined. This method may be faster
- than traversing the automaton in post or preorder since it can scan states
- linearly. Returning false from <A HREF="../../morfologik/fsa/StateVisitor.html#accept(int)"><CODE>StateVisitor.accept(int)</CODE></A>
- immediately terminates the traversal.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="visitInPostOrder(morfologik.fsa.StateVisitor)"><!-- --></A><A NAME="visitInPostOrder(T)"><!-- --></A><H3>
-visitInPostOrder</H3>
-<PRE>
-public &lt;T extends <A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>&gt; T <B>visitInPostOrder</B>(T&nbsp;v)</PRE>
-<DL>
-<DD>Same as <A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T, int)"><CODE>visitInPostOrder(StateVisitor, int)</CODE></A>,
- starting from root automaton node.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="visitInPostOrder(morfologik.fsa.StateVisitor,int)"><!-- --></A><A NAME="visitInPostOrder(T, int)"><!-- --></A><H3>
-visitInPostOrder</H3>
-<PRE>
-public &lt;T extends <A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>&gt; T <B>visitInPostOrder</B>(T&nbsp;v,
- int&nbsp;node)</PRE>
-<DL>
-<DD>Visits all states reachable from <code>node</code> in postorder.
- Returning false from <A HREF="../../morfologik/fsa/StateVisitor.html#accept(int)"><CODE>StateVisitor.accept(int)</CODE></A>
- immediately terminates the traversal.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="visitInPreOrder(morfologik.fsa.StateVisitor)"><!-- --></A><A NAME="visitInPreOrder(T)"><!-- --></A><H3>
-visitInPreOrder</H3>
-<PRE>
-public &lt;T extends <A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>&gt; T <B>visitInPreOrder</B>(T&nbsp;v)</PRE>
-<DL>
-<DD>Same as <A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T, int)"><CODE>visitInPreOrder(StateVisitor, int)</CODE></A>, starting from root automaton node.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="visitInPreOrder(morfologik.fsa.StateVisitor,int)"><!-- --></A><A NAME="visitInPreOrder(T, int)"><!-- --></A><H3>
-visitInPreOrder</H3>
-<PRE>
-public &lt;T extends <A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A>&gt; T <B>visitInPreOrder</B>(T&nbsp;v,
- int&nbsp;node)</PRE>
-<DL>
-<DD>Visits all states in preorder. Returning false from <A HREF="../../morfologik/fsa/StateVisitor.html#accept(int)"><CODE>StateVisitor.accept(int)</CODE></A>
- skips traversal of all sub-states of a given state.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="read(java.io.InputStream)"><!-- --></A><H3>
-read</H3>
-<PRE>
-public static &lt;T extends <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&gt; T <B>read</B>(java.io.InputStream&nbsp;in)
- throws java.io.IOException</PRE>
-<DL>
-<DD>A factory for reading automata in any of the supported versions. If
- possible, explicit constructors should be used.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE><DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSA5.html#FSA5(java.io.InputStream)"><CODE>FSA5.FSA5(InputStream)</CODE></A></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSA5.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSA.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSA.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSA5.html b/doc/api/morfologik/fsa/FSA5.html
deleted file mode 100644
index c6ae2cf..0000000
--- a/doc/api/morfologik/fsa/FSA5.html
+++ /dev/null
@@ -1,887 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSA5
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSA5";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSA5.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSA5.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class FSA5</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">morfologik.fsa.FSA</A>
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSA5</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Iterable&lt;java.nio.ByteBuffer&gt;</DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>FSA5</B><DT>extends <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></DL>
-</PRE>
-
-<P>
-FSA binary format implementation for version 5.
-
- <p>
- Version 5 indicates the dictionary was built with these flags:
- <A HREF="../../morfologik/fsa/FSAFlags.html#FLEXIBLE"><CODE>FSAFlags.FLEXIBLE</CODE></A>, <A HREF="../../morfologik/fsa/FSAFlags.html#STOPBIT"><CODE>FSAFlags.STOPBIT</CODE></A> and
- <A HREF="../../morfologik/fsa/FSAFlags.html#NEXTBIT"><CODE>FSAFlags.NEXTBIT</CODE></A>. The internal representation of the FSA must
- therefore follow this description (please note this format describes only a
- single transition (arc), not the entire dictionary file).
-
- <pre>
- ---- this node header present only if automaton was compiled with NUMBERS option.
- Byte
- +-+-+-+-+-+-+-+-+\
- 0 | | | | | | | | | \ LSB
- +-+-+-+-+-+-+-+-+ +
- 1 | | | | | | | | | | number of strings recognized
- +-+-+-+-+-+-+-+-+ +----- by the automaton starting
- : : : : : : : : : | from this node.
- +-+-+-+-+-+-+-+-+ +
- ctl-1 | | | | | | | | | / MSB
- +-+-+-+-+-+-+-+-+/
-
- ---- remaining part of the node
-
- Byte
- +-+-+-+-+-+-+-+-+\
- 0 | | | | | | | | | +------ label
- +-+-+-+-+-+-+-+-+/
-
- +------------- node pointed to is next
- | +----------- the last arc of the node
- | | +--------- the arc is final
- | | |
- +-----------+
- | | | | |
- ___+___ | | | |
- / \ | | | |
- MSB LSB |
- 7 6 5 4 3 2 1 0 |
- +-+-+-+-+-+-+-+-+ |
- 1 | | | | | | | | | \ \
- +-+-+-+-+-+-+-+-+ \ \ LSB
- +-+-+-+-+-+-+-+-+ +
- 2 | | | | | | | | | |
- +-+-+-+-+-+-+-+-+ |
- 3 | | | | | | | | | +----- target node address (in bytes)
- +-+-+-+-+-+-+-+-+ | (not present except for the byte
- : : : : : : : : : | with flags if the node pointed to
- +-+-+-+-+-+-+-+-+ + is next)
- gtl | | | | | | | | | / MSB
- +-+-+-+-+-+-+-+-+ /
- gtl+1 (gtl = gotoLength)
- </pre>
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#ADDRESS_OFFSET">ADDRESS_OFFSET</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An offset in the arc structure, where the address and flags field begins.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#annotation">annotation</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Annotation character.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#arcs">arcs</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An array of bytes with the internal representation of the automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#BIT_FINAL_ARC">BIT_FINAL_ARC</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bit indicating that an arc corresponds to the last character of a
- sequence available when building the automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#BIT_LAST_ARC">BIT_LAST_ARC</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bit indicating that an arc is the last one of the node's list and the
- following one belongs to another node.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#BIT_TARGET_NEXT">BIT_TARGET_NEXT</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bit indicating that the target node of this arc follows it in the
- compressed automaton structure (no goto field).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#DEFAULT_ANNOTATION">DEFAULT_ANNOTATION</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default annotation byte.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#DEFAULT_FILLER">DEFAULT_FILLER</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default filler byte.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#filler">filler</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filler character.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#gtl">gtl</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number of bytes each address takes in full, expanded form (goto length).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#nodeDataLength">nodeDataLength</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The length of the node header structure (if the automaton was compiled with
- <code>NUMBERS</code> option).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#VERSION">VERSION</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Automaton version as in the file header.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#FSA5(java.io.InputStream)">FSA5</A></B>(java.io.InputStream&nbsp;fsaStream)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read and wrap a binary automaton in FSA version 5.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#getArc(int, byte)">getArc</A></B>(int&nbsp;node,
- byte&nbsp;label)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#getArcLabel(int)">getArcLabel</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the label associated with a given <code>arc</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#getEndNode(int)">getEndNode</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the end node pointed to by a given <code>arc</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#getFirstArc(int)">getFirstArc</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#getFlags()">getFlags</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a set of flags for this FSA instance.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#getNextArc(int)">getNextArc</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#getRightLanguageCount(int)">getRightLanguageCount</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number encoded at the given node.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#getRootNode()">getRootNode</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the start node of this automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#isArcFinal(int)">isArcFinal</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#isArcLast(int)">isArcLast</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this arc has <code>LAST</code> bit set.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#isArcTerminal(int)">isArcTerminal</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5.html#isNextSet(int)">isNextSet</A></B>(int&nbsp;arc)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_morfologik.fsa.FSA"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class morfologik.fsa.<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArcCount(int)">getArcCount</A>, <A HREF="../../morfologik/fsa/FSA.html#getSequences()">getSequences</A>, <A HREF="../../morfologik/fsa/FSA.html#getSequences(int)">getSequences</A>, <A HREF="../../morfologik/fsa/FSA.html#iterator()">iterator</A>, <A HREF="../../morfologik/fsa/FSA.html#read(java.io.InputStream)">read</A>, <A HREF="../../morfologik/fsa/FSA.html#visitAllStates(T)">visitAllStates</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T)">visitInPostOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T, int)">visitInPostOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T)">visitInPreOrder</A>, <A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T, int)">visitInPreOrder</A></CODE></TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="DEFAULT_FILLER"><!-- --></A><H3>
-DEFAULT_FILLER</H3>
-<PRE>
-public static final byte <B>DEFAULT_FILLER</B></PRE>
-<DL>
-<DD>Default filler byte.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.FSA5.DEFAULT_FILLER">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="DEFAULT_ANNOTATION"><!-- --></A><H3>
-DEFAULT_ANNOTATION</H3>
-<PRE>
-public static final byte <B>DEFAULT_ANNOTATION</B></PRE>
-<DL>
-<DD>Default annotation byte.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.FSA5.DEFAULT_ANNOTATION">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="VERSION"><!-- --></A><H3>
-VERSION</H3>
-<PRE>
-public static final byte <B>VERSION</B></PRE>
-<DL>
-<DD>Automaton version as in the file header.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.FSA5.VERSION">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_FINAL_ARC"><!-- --></A><H3>
-BIT_FINAL_ARC</H3>
-<PRE>
-public static final int <B>BIT_FINAL_ARC</B></PRE>
-<DL>
-<DD>Bit indicating that an arc corresponds to the last character of a
- sequence available when building the automaton.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.FSA5.BIT_FINAL_ARC">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_LAST_ARC"><!-- --></A><H3>
-BIT_LAST_ARC</H3>
-<PRE>
-public static final int <B>BIT_LAST_ARC</B></PRE>
-<DL>
-<DD>Bit indicating that an arc is the last one of the node's list and the
- following one belongs to another node.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.FSA5.BIT_LAST_ARC">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="BIT_TARGET_NEXT"><!-- --></A><H3>
-BIT_TARGET_NEXT</H3>
-<PRE>
-public static final int <B>BIT_TARGET_NEXT</B></PRE>
-<DL>
-<DD>Bit indicating that the target node of this arc follows it in the
- compressed automaton structure (no goto field).
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.FSA5.BIT_TARGET_NEXT">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="ADDRESS_OFFSET"><!-- --></A><H3>
-ADDRESS_OFFSET</H3>
-<PRE>
-public static final int <B>ADDRESS_OFFSET</B></PRE>
-<DL>
-<DD>An offset in the arc structure, where the address and flags field begins.
- In version 5 of FSA automata, this value is constant (1, skip label).
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.FSA5.ADDRESS_OFFSET">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="arcs"><!-- --></A><H3>
-arcs</H3>
-<PRE>
-public final byte[] <B>arcs</B></PRE>
-<DL>
-<DD>An array of bytes with the internal representation of the automaton.
- Please see the documentation of this class for more information on how
- this structure is organized.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="nodeDataLength"><!-- --></A><H3>
-nodeDataLength</H3>
-<PRE>
-public final int <B>nodeDataLength</B></PRE>
-<DL>
-<DD>The length of the node header structure (if the automaton was compiled with
- <code>NUMBERS</code> option). Otherwise zero.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="gtl"><!-- --></A><H3>
-gtl</H3>
-<PRE>
-public final int <B>gtl</B></PRE>
-<DL>
-<DD>Number of bytes each address takes in full, expanded form (goto length).
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="filler"><!-- --></A><H3>
-filler</H3>
-<PRE>
-public final byte <B>filler</B></PRE>
-<DL>
-<DD>Filler character.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="annotation"><!-- --></A><H3>
-annotation</H3>
-<PRE>
-public final byte <B>annotation</B></PRE>
-<DL>
-<DD>Annotation character.
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSA5(java.io.InputStream)"><!-- --></A><H3>
-FSA5</H3>
-<PRE>
-public <B>FSA5</B>(java.io.InputStream&nbsp;fsaStream)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Read and wrap a binary automaton in FSA version 5.
-<P>
-<DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="getRootNode()"><!-- --></A><H3>
-getRootNode</H3>
-<PRE>
-public int <B>getRootNode</B>()</PRE>
-<DL>
-<DD>Returns the start node of this automaton.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getRootNode()">getRootNode</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the root node of this automaton.
- Returns 0 if the start node is also the end node (the automaton
- is empty).</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFirstArc(int)"><!-- --></A><H3>
-getFirstArc</H3>
-<PRE>
-public final int <B>getFirstArc</B>(int&nbsp;node)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getFirstArc(int)">getFirstArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the first arc leaving <code>node</code>
- or 0 if the node has no outgoing arcs.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getNextArc(int)"><!-- --></A><H3>
-getNextArc</H3>
-<PRE>
-public final int <B>getNextArc</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getNextArc(int)">getNextArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of the next arc after <code>arc</code> and
- leaving <code>node</code>. Zero is returned if no more arcs are
- available for the node.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArc(int, byte)"><!-- --></A><H3>
-getArc</H3>
-<PRE>
-public int <B>getArc</B>(int&nbsp;node,
- byte&nbsp;label)</PRE>
-<DL>
-<DD>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArc(int, byte)">getArc</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the identifier of an arc leaving <code>node</code> and
- labeled with <code>label</code>. An identifier equal to 0 means
- the node has no outgoing arc labeled <code>label</code>.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getEndNode(int)"><!-- --></A><H3>
-getEndNode</H3>
-<PRE>
-public int <B>getEndNode</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Return the end node pointed to by a given <code>arc</code>. Terminal arcs
- (those that point to a terminal state) have no end node representation
- and throw a runtime exception.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)">getEndNode</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getArcLabel(int)"><!-- --></A><H3>
-getArcLabel</H3>
-<PRE>
-public byte <B>getArcLabel</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Return the label associated with a given <code>arc</code>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getArcLabel(int)">getArcLabel</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcFinal(int)"><!-- --></A><H3>
-isArcFinal</H3>
-<PRE>
-public boolean <B>isArcFinal</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if the destination node at the end of this
- <code>arc</code> corresponds to an input sequence created when building
- this automaton.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)">isArcFinal</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcTerminal(int)"><!-- --></A><H3>
-isArcTerminal</H3>
-<PRE>
-public boolean <B>isArcTerminal</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if this <code>arc</code> does not have a
- terminating node (@link <A HREF="../../morfologik/fsa/FSA.html#getEndNode(int)"><CODE>FSA.getEndNode(int)</CODE></A> will throw an
- exception). Implies <A HREF="../../morfologik/fsa/FSA.html#isArcFinal(int)"><CODE>FSA.isArcFinal(int)</CODE></A>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#isArcTerminal(int)">isArcTerminal</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getRightLanguageCount(int)"><!-- --></A><H3>
-getRightLanguageCount</H3>
-<PRE>
-public int <B>getRightLanguageCount</B>(int&nbsp;node)</PRE>
-<DL>
-<DD>Returns the number encoded at the given node. The number equals the count
- of the set of suffixes reachable from <code>node</code> (called its right
- language).
-<P>
-<DD><DL>
-<DT><B>Overrides:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getRightLanguageCount(int)">getRightLanguageCount</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the number of sequences reachable from the given state if
- the automaton was compiled with <A HREF="../../morfologik/fsa/FSAFlags.html#NUMBERS"><CODE>FSAFlags.NUMBERS</CODE></A>. The size of
- the right language of the state, in other words.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFlags()"><!-- --></A><H3>
-getFlags</H3>
-<PRE>
-public java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt; <B>getFlags</B>()</PRE>
-<DL>
-<DD>Returns a set of flags for this FSA instance.
-
- <p>For this automaton version, an additional <A HREF="../../morfologik/fsa/FSAFlags.html#NUMBERS"><CODE>FSAFlags.NUMBERS</CODE></A> flag
- may be set to indicate the automaton contains extra fields for each node.</p>
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSA.html#getFlags()">getFlags</A></CODE> in class <CODE><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isArcLast(int)"><!-- --></A><H3>
-isArcLast</H3>
-<PRE>
-public boolean <B>isArcLast</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD>Returns <code>true</code> if this arc has <code>LAST</code> bit set.
-<P>
-<DD><DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSA5.html#BIT_LAST_ARC"><CODE>BIT_LAST_ARC</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isNextSet(int)"><!-- --></A><H3>
-isNextSet</H3>
-<PRE>
-public boolean <B>isNextSet</B>(int&nbsp;arc)</PRE>
-<DL>
-<DD><DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSA5.html#BIT_TARGET_NEXT"><CODE>BIT_TARGET_NEXT</CODE></A></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSA5.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSA5.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSA5Serializer.html b/doc/api/morfologik/fsa/FSA5Serializer.html
deleted file mode 100644
index 8a7a237..0000000
--- a/doc/api/morfologik/fsa/FSA5Serializer.html
+++ /dev/null
@@ -1,468 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSA5Serializer
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSA5Serializer";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSA5.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSA5Serializer.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSA5Serializer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class FSA5Serializer</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSA5Serializer</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>FSA5Serializer</B><DT>extends java.lang.Object<DT>implements <A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></DL>
-</PRE>
-
-<P>
-Serializes in-memory <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> graphs to a binary format compatible with
- Jan Daciuk's <code>fsa</code>'s package <code>FSA5</code> format.
-
- <p>
- It is possible to serialize the automaton with numbers required for perfect
- hashing. See <A HREF="../../morfologik/fsa/FSA5Serializer.html#withNumbers()"><CODE>withNumbers()</CODE></A> method.
- </p>
-<P>
-
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSA5.html" title="class in morfologik.fsa"><CODE>FSA5</CODE></A>,
-<A HREF="../../morfologik/fsa/FSA.html#read(java.io.InputStream)"><CODE>FSA.read(java.io.InputStream)</CODE></A></DL>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5Serializer.html#annotationByte">annotationByte</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5Serializer.html#fillerByte">fillerByte</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5Serializer.html#FSA5Serializer()">FSA5Serializer</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5Serializer.html#getFlags()">getFlags</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return supported flags.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;T extends java.io.OutputStream&gt;
-<BR>
-T</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5Serializer.html#serialize(morfologik.fsa.FSA, T)">serialize</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- T&nbsp;os)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Serialize root state <code>s</code> to an output stream in
- <code>FSA5</code> format.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5Serializer.html#withAnnotationSeparator(byte)">withAnnotationSeparator</A></B>(byte&nbsp;annotationSeparator)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supports built-in annotation separator.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5Serializer.html#withFiller(byte)">withFiller</A></B>(byte&nbsp;filler)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supports built-in filler separator.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5Serializer.html#withLogger(morfologik.tools.IMessageLogger)">withLogger</A></B>(<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>&nbsp;logger)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log extra messages during construction.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSA5Serializer.html#withNumbers()">withNumbers</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Serialize the automaton with the number of right-language sequences in
- each node.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="fillerByte"><!-- --></A><H3>
-fillerByte</H3>
-<PRE>
-public byte <B>fillerByte</B></PRE>
-<DL>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSA5.html#filler"><CODE>FSA5.filler</CODE></A></DL>
-</DL>
-<HR>
-
-<A NAME="annotationByte"><!-- --></A><H3>
-annotationByte</H3>
-<PRE>
-public byte <B>annotationByte</B></PRE>
-<DL>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSA5.html#annotation"><CODE>FSA5.annotation</CODE></A></DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSA5Serializer()"><!-- --></A><H3>
-FSA5Serializer</H3>
-<PRE>
-public <B>FSA5Serializer</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="withNumbers()"><!-- --></A><H3>
-withNumbers</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A> <B>withNumbers</B>()</PRE>
-<DL>
-<DD>Serialize the automaton with the number of right-language sequences in
- each node. This is required to implement perfect hashing. The numbering
- also preserves the order of input sequences.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withNumbers()">withNumbers</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns the same object for easier call chaining.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="withFiller(byte)"><!-- --></A><H3>
-withFiller</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A> <B>withFiller</B>(byte&nbsp;filler)</PRE>
-<DL>
-<DD>Supports built-in filler separator. Only if <A HREF="../../morfologik/fsa/FSASerializer.html#getFlags()"><CODE>FSASerializer.getFlags()</CODE></A> returns
- <A HREF="../../morfologik/fsa/FSAFlags.html#SEPARATORS"><CODE>FSAFlags.SEPARATORS</CODE></A>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withFiller(byte)">withFiller</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="withAnnotationSeparator(byte)"><!-- --></A><H3>
-withAnnotationSeparator</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A> <B>withAnnotationSeparator</B>(byte&nbsp;annotationSeparator)</PRE>
-<DL>
-<DD>Supports built-in annotation separator. Only if <A HREF="../../morfologik/fsa/FSASerializer.html#getFlags()"><CODE>FSASerializer.getFlags()</CODE></A> returns
- <A HREF="../../morfologik/fsa/FSAFlags.html#SEPARATORS"><CODE>FSAFlags.SEPARATORS</CODE></A>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withAnnotationSeparator(byte)">withAnnotationSeparator</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="withLogger(morfologik.tools.IMessageLogger)"><!-- --></A><H3>
-withLogger</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A> <B>withLogger</B>(<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>&nbsp;logger)</PRE>
-<DL>
-<DD>Log extra messages during construction.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#withLogger(morfologik.tools.IMessageLogger)">withLogger</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="serialize(morfologik.fsa.FSA,java.io.OutputStream)"><!-- --></A><A NAME="serialize(morfologik.fsa.FSA, T)"><!-- --></A><H3>
-serialize</H3>
-<PRE>
-public &lt;T extends java.io.OutputStream&gt; T <B>serialize</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- T&nbsp;os)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Serialize root state <code>s</code> to an output stream in
- <code>FSA5</code> format.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#serialize(morfologik.fsa.FSA, T)">serialize</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns <code>os</code> for chaining.
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE><DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSA5Serializer.html#withNumbers"><CODE>withNumbers</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFlags()"><!-- --></A><H3>
-getFlags</H3>
-<PRE>
-public java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt; <B>getFlags</B>()</PRE>
-<DL>
-<DD>Return supported flags.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/fsa/FSASerializer.html#getFlags()">getFlags</A></CODE> in interface <CODE><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSA5.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSA5Serializer.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSA5Serializer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSABuilder.InfoEntry.html b/doc/api/morfologik/fsa/FSABuilder.InfoEntry.html
deleted file mode 100644
index 67fc1e3..0000000
--- a/doc/api/morfologik/fsa/FSABuilder.InfoEntry.html
+++ /dev/null
@@ -1,431 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSABuilder.InfoEntry
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSABuilder.InfoEntry";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSABuilder.InfoEntry.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSABuilder.InfoEntry.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Enum FSABuilder.InfoEntry</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>&gt;
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSABuilder.InfoEntry</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>&gt;</DD>
-</DL>
-<DL>
-<DT><B>Enclosing class:</B><DD><A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public static enum <B>FSABuilder.InfoEntry</B><DT>extends java.lang.Enum&lt;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>&gt;</DL>
-</PRE>
-
-<P>
-Debug and information constants.
-<P>
-
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSABuilder.html#getInfo()"><CODE>FSABuilder.getInfo()</CODE></A></DL>
-<HR>
-
-<P>
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-
-<A NAME="enum_constant_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Enum Constant Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html#CONSTANT_ARC_AUTOMATON_SIZE">CONSTANT_ARC_AUTOMATON_SIZE</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html#ESTIMATED_MEMORY_CONSUMPTION_MB">ESTIMATED_MEMORY_CONSUMPTION_MB</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html#MAX_ACTIVE_PATH_LENGTH">MAX_ACTIVE_PATH_LENGTH</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html#SERIALIZATION_BUFFER_REALLOCATIONS">SERIALIZATION_BUFFER_REALLOCATIONS</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html#SERIALIZATION_BUFFER_SIZE">SERIALIZATION_BUFFER_SIZE</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html#STATE_REGISTRY_SIZE">STATE_REGISTRY_SIZE</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html#STATE_REGISTRY_TABLE_SLOTS">STATE_REGISTRY_TABLE_SLOTS</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html#toString()">toString</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html#values()">values</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
-the order they are declared.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, valueOf</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ ENUM CONSTANT DETAIL =========== -->
-
-<A NAME="enum_constant_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Enum Constant Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="SERIALIZATION_BUFFER_SIZE"><!-- --></A><H3>
-SERIALIZATION_BUFFER_SIZE</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A> <B>SERIALIZATION_BUFFER_SIZE</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="SERIALIZATION_BUFFER_REALLOCATIONS"><!-- --></A><H3>
-SERIALIZATION_BUFFER_REALLOCATIONS</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A> <B>SERIALIZATION_BUFFER_REALLOCATIONS</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="CONSTANT_ARC_AUTOMATON_SIZE"><!-- --></A><H3>
-CONSTANT_ARC_AUTOMATON_SIZE</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A> <B>CONSTANT_ARC_AUTOMATON_SIZE</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="MAX_ACTIVE_PATH_LENGTH"><!-- --></A><H3>
-MAX_ACTIVE_PATH_LENGTH</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A> <B>MAX_ACTIVE_PATH_LENGTH</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="STATE_REGISTRY_TABLE_SLOTS"><!-- --></A><H3>
-STATE_REGISTRY_TABLE_SLOTS</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A> <B>STATE_REGISTRY_TABLE_SLOTS</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="STATE_REGISTRY_SIZE"><!-- --></A><H3>
-STATE_REGISTRY_SIZE</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A> <B>STATE_REGISTRY_SIZE</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="ESTIMATED_MEMORY_CONSUMPTION_MB"><!-- --></A><H3>
-ESTIMATED_MEMORY_CONSUMPTION_MB</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A> <B>ESTIMATED_MEMORY_CONSUMPTION_MB</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="values()"><!-- --></A><H3>
-values</H3>
-<PRE>
-public static <A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>[] <B>values</B>()</PRE>
-<DL>
-<DD>Returns an array containing the constants of this enum type, in
-the order they are declared. This method may be used to iterate
-over the constants as follows:
-<pre>
-for (FSABuilder.InfoEntry c : FSABuilder.InfoEntry.values())
-&nbsp; System.out.println(c);
-</pre>
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
-the order they are declared</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
-valueOf</H3>
-<PRE>
-public static <A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>
-<DL>
-<DD>Returns the enum constant of this type with the specified name.
-The string must match <I>exactly</I> an identifier used to declare an
-enum constant in this type. (Extraneous whitespace characters are
-not permitted.)
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
-<DT><B>Returns:</B><DD>the enum constant with the specified name
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
-with the specified name
-<DD><CODE>java.lang.NullPointerException</CODE> - if the argument is null</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="toString()"><!-- --></A><H3>
-toString</H3>
-<PRE>
-public java.lang.String <B>toString</B>()</PRE>
-<DL>
-<DD><DL>
-<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Enum&lt;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>&gt;</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSABuilder.InfoEntry.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSABuilder.InfoEntry.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSABuilder.html b/doc/api/morfologik/fsa/FSABuilder.html
deleted file mode 100644
index b862e6c..0000000
--- a/doc/api/morfologik/fsa/FSABuilder.html
+++ /dev/null
@@ -1,450 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSABuilder
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSABuilder";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSABuilder.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSABuilder.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class FSABuilder</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSABuilder</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>FSABuilder</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Fast, memory-conservative finite state automaton builder, returning a
- byte-serialized <A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa"><CODE>ConstantArcSizeFSA</CODE></A> (a tradeoff between construction
- speed and memory consumption).
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<A NAME="nested_class_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Nested Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug and information constants.</TD>
-</TR>
-</TABLE>
-&nbsp;<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.util.Comparator&lt;byte[]&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.html#LEXICAL_ORDERING">LEXICAL_ORDERING</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comparator comparing full byte arrays consistently with
- <A HREF="../../morfologik/fsa/FSABuilder.html#compare(byte[], int, int, byte[], int, int)"><CODE>compare(byte[], int, int, byte[], int, int)</CODE></A>.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.html#FSABuilder()">FSABuilder</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.html#FSABuilder(int)">FSABuilder</A></B>(int&nbsp;bufferGrowthSize)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.html#add(byte[], int, int)">add</A></B>(byte[]&nbsp;sequence,
- int&nbsp;start,
- int&nbsp;len)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a single sequence of bytes to the FSA.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.html#build(byte[][])">build</A></B>(byte[][]&nbsp;input)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build a minimal, deterministic automaton from a sorted list of byte sequences.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.html#build(java.lang.Iterable)">build</A></B>(java.lang.Iterable&lt;byte[]&gt;&nbsp;input)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build a minimal, deterministic automaton from an iterable list of byte sequences.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.html#compare(byte[], int, int, byte[], int, int)">compare</A></B>(byte[]&nbsp;s1,
- int&nbsp;start1,
- int&nbsp;lens1,
- byte[]&nbsp;s2,
- int&nbsp;start2,
- int&nbsp;lens2)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lexicographic order of input sequences.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.html#complete()">complete</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Complete the automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Map&lt;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>,java.lang.Object&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSABuilder.html#getInfo()">getInfo</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return various statistics concerning the FSA and its compilation.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="LEXICAL_ORDERING"><!-- --></A><H3>
-LEXICAL_ORDERING</H3>
-<PRE>
-public static final java.util.Comparator&lt;byte[]&gt; <B>LEXICAL_ORDERING</B></PRE>
-<DL>
-<DD>Comparator comparing full byte arrays consistently with
- <A HREF="../../morfologik/fsa/FSABuilder.html#compare(byte[], int, int, byte[], int, int)"><CODE>compare(byte[], int, int, byte[], int, int)</CODE></A>.
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSABuilder()"><!-- --></A><H3>
-FSABuilder</H3>
-<PRE>
-public <B>FSABuilder</B>()</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FSABuilder(int)"><!-- --></A><H3>
-FSABuilder</H3>
-<PRE>
-public <B>FSABuilder</B>(int&nbsp;bufferGrowthSize)</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="add(byte[], int, int)"><!-- --></A><H3>
-add</H3>
-<PRE>
-public void <B>add</B>(byte[]&nbsp;sequence,
- int&nbsp;start,
- int&nbsp;len)</PRE>
-<DL>
-<DD>Add a single sequence of bytes to the FSA. The input must be lexicographically greater
- than any previously added sequence.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="complete()"><!-- --></A><H3>
-complete</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A> <B>complete</B>()</PRE>
-<DL>
-<DD>Complete the automaton.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="build(byte[][])"><!-- --></A><H3>
-build</H3>
-<PRE>
-public static <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A> <B>build</B>(byte[][]&nbsp;input)</PRE>
-<DL>
-<DD>Build a minimal, deterministic automaton from a sorted list of byte sequences.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="build(java.lang.Iterable)"><!-- --></A><H3>
-build</H3>
-<PRE>
-public static <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A> <B>build</B>(java.lang.Iterable&lt;byte[]&gt;&nbsp;input)</PRE>
-<DL>
-<DD>Build a minimal, deterministic automaton from an iterable list of byte sequences.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getInfo()"><!-- --></A><H3>
-getInfo</H3>
-<PRE>
-public java.util.Map&lt;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A>,java.lang.Object&gt; <B>getInfo</B>()</PRE>
-<DL>
-<DD>Return various statistics concerning the FSA and its compilation.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="compare(byte[], int, int, byte[], int, int)"><!-- --></A><H3>
-compare</H3>
-<PRE>
-public static int <B>compare</B>(byte[]&nbsp;s1,
- int&nbsp;start1,
- int&nbsp;lens1,
- byte[]&nbsp;s2,
- int&nbsp;start2,
- int&nbsp;lens2)</PRE>
-<DL>
-<DD>Lexicographic order of input sequences. By default, consistent with the "C" sort
- (absolute value of bytes, 0-255).
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSABuilder.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSABuilder.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSAFinalStatesIterator.html b/doc/api/morfologik/fsa/FSAFinalStatesIterator.html
deleted file mode 100644
index 796922a..0000000
--- a/doc/api/morfologik/fsa/FSAFinalStatesIterator.html
+++ /dev/null
@@ -1,339 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSAFinalStatesIterator
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSAFinalStatesIterator";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSAFinalStatesIterator.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSAFinalStatesIterator.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class FSAFinalStatesIterator</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSAFinalStatesIterator</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.util.Iterator&lt;java.nio.ByteBuffer&gt;</DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>FSAFinalStatesIterator</B><DT>extends java.lang.Object<DT>implements java.util.Iterator&lt;java.nio.ByteBuffer&gt;</DL>
-</PRE>
-
-<P>
-An iterator that traverses the right language of a given node (all sequences
- reachable from a given node).
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html#FSAFinalStatesIterator(morfologik.fsa.FSA, int)">FSAFinalStatesIterator</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an instance of the iterator for a given node.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html#hasNext()">hasNext</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if there are still elements in this iterator.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.nio.ByteBuffer</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html#next()">next</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html#remove()">remove</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Not implemented in this iterator.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html#restartFrom(int)">restartFrom</A></B>(int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restart walking from <code>node</code>.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSAFinalStatesIterator(morfologik.fsa.FSA, int)"><!-- --></A><H3>
-FSAFinalStatesIterator</H3>
-<PRE>
-public <B>FSAFinalStatesIterator</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- int&nbsp;node)</PRE>
-<DL>
-<DD>Create an instance of the iterator for a given node.
-<P>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="restartFrom(int)"><!-- --></A><H3>
-restartFrom</H3>
-<PRE>
-public void <B>restartFrom</B>(int&nbsp;node)</PRE>
-<DL>
-<DD>Restart walking from <code>node</code>. Allows iterator reuse.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="hasNext()"><!-- --></A><H3>
-hasNext</H3>
-<PRE>
-public boolean <B>hasNext</B>()</PRE>
-<DL>
-<DD>Returns <code>true</code> if there are still elements in this iterator.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE>hasNext</CODE> in interface <CODE>java.util.Iterator&lt;java.nio.ByteBuffer&gt;</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="next()"><!-- --></A><H3>
-next</H3>
-<PRE>
-public java.nio.ByteBuffer <B>next</B>()</PRE>
-<DL>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE>next</CODE> in interface <CODE>java.util.Iterator&lt;java.nio.ByteBuffer&gt;</CODE></DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Returns a <CODE>ByteBuffer</CODE> with the sequence corresponding to
- the next final state in the automaton.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="remove()"><!-- --></A><H3>
-remove</H3>
-<PRE>
-public void <B>remove</B>()</PRE>
-<DL>
-<DD>Not implemented in this iterator.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE>remove</CODE> in interface <CODE>java.util.Iterator&lt;java.nio.ByteBuffer&gt;</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSAFinalStatesIterator.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSAFinalStatesIterator.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSAFlags.html b/doc/api/morfologik/fsa/FSAFlags.html
deleted file mode 100644
index 4e24416..0000000
--- a/doc/api/morfologik/fsa/FSAFlags.html
+++ /dev/null
@@ -1,484 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSAFlags
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSAFlags";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSAFlags.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSAFlags.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Enum FSAFlags</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSAFlags</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;</DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public enum <B>FSAFlags</B><DT>extends java.lang.Enum&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;</DL>
-</PRE>
-
-<P>
-FSA automaton flags. Where applicable, flags follow Daciuk's <code>fsa</code> package.
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-
-<A NAME="enum_constant_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Enum Constant Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#FLEXIBLE">FLEXIBLE</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Daciuk: flexible FSA encoding.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#NEXTBIT">NEXTBIT</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Daciuk: next bit in use.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#NUMBERS">NUMBERS</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The FSA contains right-language count numbers on states.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#SEPARATORS">SEPARATORS</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The FSA supports legacy built-in separator and filler characters (Daciuk's FSA package
- compatibility).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#STOPBIT">STOPBIT</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Daciuk: stop bit in use.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#TAILS">TAILS</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Daciuk: tails compression.</TD>
-</TR>
-</TABLE>
-&nbsp;<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#bits">bits</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bit mask for the corresponding flag.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;short</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#asShort(java.util.Set)">asShort</A></B>(java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;&nbsp;flags)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the set of flags encoded in a single short.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#isSet(int, morfologik.fsa.FSAFlags)">isSet</A></B>(int&nbsp;flags,
- <A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&nbsp;flag)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if the corresponding flag is set in the bit set.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAFlags.html#values()">values</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
-the order they are declared.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ ENUM CONSTANT DETAIL =========== -->
-
-<A NAME="enum_constant_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Enum Constant Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FLEXIBLE"><!-- --></A><H3>
-FLEXIBLE</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A> <B>FLEXIBLE</B></PRE>
-<DL>
-<DD>Daciuk: flexible FSA encoding.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="STOPBIT"><!-- --></A><H3>
-STOPBIT</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A> <B>STOPBIT</B></PRE>
-<DL>
-<DD>Daciuk: stop bit in use.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="NEXTBIT"><!-- --></A><H3>
-NEXTBIT</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A> <B>NEXTBIT</B></PRE>
-<DL>
-<DD>Daciuk: next bit in use.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="TAILS"><!-- --></A><H3>
-TAILS</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A> <B>TAILS</B></PRE>
-<DL>
-<DD>Daciuk: tails compression.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="NUMBERS"><!-- --></A><H3>
-NUMBERS</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A> <B>NUMBERS</B></PRE>
-<DL>
-<DD>The FSA contains right-language count numbers on states.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSA.html#getRightLanguageCount(int)"><CODE>FSA.getRightLanguageCount(int)</CODE></A></DL>
-</DL>
-<HR>
-
-<A NAME="SEPARATORS"><!-- --></A><H3>
-SEPARATORS</H3>
-<PRE>
-public static final <A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A> <B>SEPARATORS</B></PRE>
-<DL>
-<DD>The FSA supports legacy built-in separator and filler characters (Daciuk's FSA package
- compatibility).
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="bits"><!-- --></A><H3>
-bits</H3>
-<PRE>
-public final int <B>bits</B></PRE>
-<DL>
-<DD>Bit mask for the corresponding flag.
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="values()"><!-- --></A><H3>
-values</H3>
-<PRE>
-public static <A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>[] <B>values</B>()</PRE>
-<DL>
-<DD>Returns an array containing the constants of this enum type, in
-the order they are declared. This method may be used to iterate
-over the constants as follows:
-<pre>
-for (FSAFlags c : FSAFlags.values())
-&nbsp; System.out.println(c);
-</pre>
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
-the order they are declared</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
-valueOf</H3>
-<PRE>
-public static <A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>
-<DL>
-<DD>Returns the enum constant of this type with the specified name.
-The string must match <I>exactly</I> an identifier used to declare an
-enum constant in this type. (Extraneous whitespace characters are
-not permitted.)
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
-<DT><B>Returns:</B><DD>the enum constant with the specified name
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
-with the specified name
-<DD><CODE>java.lang.NullPointerException</CODE> - if the argument is null</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isSet(int, morfologik.fsa.FSAFlags)"><!-- --></A><H3>
-isSet</H3>
-<PRE>
-public static boolean <B>isSet</B>(int&nbsp;flags,
- <A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&nbsp;flag)</PRE>
-<DL>
-<DD>Returns <code>true</code> if the corresponding flag is set in the bit set.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="asShort(java.util.Set)"><!-- --></A><H3>
-asShort</H3>
-<PRE>
-public static short <B>asShort</B>(java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;&nbsp;flags)</PRE>
-<DL>
-<DD>Returns the set of flags encoded in a single short.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSAFlags.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSAFlags.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSAInfo.html b/doc/api/morfologik/fsa/FSAInfo.html
deleted file mode 100644
index 9f08c90..0000000
--- a/doc/api/morfologik/fsa/FSAInfo.html
+++ /dev/null
@@ -1,399 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSAInfo
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSAInfo";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSAInfo.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSAInfo.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class FSAInfo</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSAInfo</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>FSAInfo</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Compute additional information about an FSA: number of arcs, nodes, etc.
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAInfo.html#arcsCount">arcsCount</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number of arcs in the automaton, excluding an arcs from the zero node
- (initial) and an arc from the start node to the root node.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAInfo.html#arcsCountTotal">arcsCountTotal</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total number of arcs, counting arcs that physically overlap due to
- merging.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAInfo.html#finalStatesCount">finalStatesCount</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number of final states (number of input sequences stored in the automaton).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAInfo.html#nodeCount">nodeCount</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number of nodes in the automaton.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAInfo.html#size">size</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arcs size (in serialized form).</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAInfo.html#FSAInfo(morfologik.fsa.FSA)">FSAInfo</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAInfo.html#FSAInfo(int, int, int, int)">FSAInfo</A></B>(int&nbsp;nodeCount,
- int&nbsp;arcsCount,
- int&nbsp;arcsCountTotal,
- int&nbsp;finalStatesCount)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAInfo.html#toString()">toString</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="nodeCount"><!-- --></A><H3>
-nodeCount</H3>
-<PRE>
-public final int <B>nodeCount</B></PRE>
-<DL>
-<DD>Number of nodes in the automaton.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="arcsCount"><!-- --></A><H3>
-arcsCount</H3>
-<PRE>
-public final int <B>arcsCount</B></PRE>
-<DL>
-<DD>Number of arcs in the automaton, excluding an arcs from the zero node
- (initial) and an arc from the start node to the root node.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="arcsCountTotal"><!-- --></A><H3>
-arcsCountTotal</H3>
-<PRE>
-public final int <B>arcsCountTotal</B></PRE>
-<DL>
-<DD>Total number of arcs, counting arcs that physically overlap due to
- merging.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="finalStatesCount"><!-- --></A><H3>
-finalStatesCount</H3>
-<PRE>
-public final int <B>finalStatesCount</B></PRE>
-<DL>
-<DD>Number of final states (number of input sequences stored in the automaton).
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="size"><!-- --></A><H3>
-size</H3>
-<PRE>
-public final int <B>size</B></PRE>
-<DL>
-<DD>Arcs size (in serialized form).
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSAInfo(morfologik.fsa.FSA)"><!-- --></A><H3>
-FSAInfo</H3>
-<PRE>
-public <B>FSAInfo</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FSAInfo(int, int, int, int)"><!-- --></A><H3>
-FSAInfo</H3>
-<PRE>
-public <B>FSAInfo</B>(int&nbsp;nodeCount,
- int&nbsp;arcsCount,
- int&nbsp;arcsCountTotal,
- int&nbsp;finalStatesCount)</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="toString()"><!-- --></A><H3>
-toString</H3>
-<PRE>
-public java.lang.String <B>toString</B>()</PRE>
-<DL>
-<DD><DL>
-<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSAInfo.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSAInfo.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSASerializer.html b/doc/api/morfologik/fsa/FSASerializer.html
deleted file mode 100644
index 5e57fae..0000000
--- a/doc/api/morfologik/fsa/FSASerializer.html
+++ /dev/null
@@ -1,335 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSASerializer
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSASerializer";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSASerializer.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSASerializer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Interface FSASerializer</H2>
-<DL>
-<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A>, <A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public interface <B>FSASerializer</B></DL>
-</PRE>
-
-<P>
-All FSA serializers to binary formats will implement this interface.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSASerializer.html#getFlags()">getFlags</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the set of flags supported by the serializer (and the output automaton).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
-<TR ALIGN="right" VALIGN="">
-<TD NOWRAP><FONT SIZE="-1">
-<CODE>&lt;T extends java.io.OutputStream&gt;
-<BR>
-T</CODE></FONT></TD>
-</TR>
-</TABLE>
-</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSASerializer.html#serialize(morfologik.fsa.FSA, T)">serialize</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- T&nbsp;os)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Serialize a finite state automaton to an output stream.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSASerializer.html#withAnnotationSeparator(byte)">withAnnotationSeparator</A></B>(byte&nbsp;annotationSeparator)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supports built-in annotation separator.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSASerializer.html#withFiller(byte)">withFiller</A></B>(byte&nbsp;filler)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supports built-in filler separator.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSASerializer.html#withLogger(morfologik.tools.IMessageLogger)">withLogger</A></B>(<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>&nbsp;logger)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log extra messages during construction.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSASerializer.html#withNumbers()">withNumbers</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Supports built-in right language count on nodes, speeding up perfect hash counts.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="serialize(morfologik.fsa.FSA,java.io.OutputStream)"><!-- --></A><A NAME="serialize(morfologik.fsa.FSA, T)"><!-- --></A><H3>
-serialize</H3>
-<PRE>
-&lt;T extends java.io.OutputStream&gt; T <B>serialize</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- T&nbsp;os)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Serialize a finite state automaton to an output stream.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getFlags()"><!-- --></A><H3>
-getFlags</H3>
-<PRE>
-java.util.Set&lt;<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A>&gt; <B>getFlags</B>()</PRE>
-<DL>
-<DD>Returns the set of flags supported by the serializer (and the output automaton).
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="withLogger(morfologik.tools.IMessageLogger)"><!-- --></A><H3>
-withLogger</H3>
-<PRE>
-<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A> <B>withLogger</B>(<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>&nbsp;logger)</PRE>
-<DL>
-<DD>Log extra messages during construction.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="withFiller(byte)"><!-- --></A><H3>
-withFiller</H3>
-<PRE>
-<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A> <B>withFiller</B>(byte&nbsp;filler)</PRE>
-<DL>
-<DD>Supports built-in filler separator. Only if <A HREF="../../morfologik/fsa/FSASerializer.html#getFlags()"><CODE>getFlags()</CODE></A> returns
- <A HREF="../../morfologik/fsa/FSAFlags.html#SEPARATORS"><CODE>FSAFlags.SEPARATORS</CODE></A>.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="withAnnotationSeparator(byte)"><!-- --></A><H3>
-withAnnotationSeparator</H3>
-<PRE>
-<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A> <B>withAnnotationSeparator</B>(byte&nbsp;annotationSeparator)</PRE>
-<DL>
-<DD>Supports built-in annotation separator. Only if <A HREF="../../morfologik/fsa/FSASerializer.html#getFlags()"><CODE>getFlags()</CODE></A> returns
- <A HREF="../../morfologik/fsa/FSAFlags.html#SEPARATORS"><CODE>FSAFlags.SEPARATORS</CODE></A>.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="withNumbers()"><!-- --></A><H3>
-withNumbers</H3>
-<PRE>
-<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A> <B>withNumbers</B>()</PRE>
-<DL>
-<DD>Supports built-in right language count on nodes, speeding up perfect hash counts.
- Only if <A HREF="../../morfologik/fsa/FSASerializer.html#getFlags()"><CODE>getFlags()</CODE></A> returns <A HREF="../../morfologik/fsa/FSAFlags.html#NUMBERS"><CODE>FSAFlags.NUMBERS</CODE></A>.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSASerializer.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSASerializer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSATraversal.html b/doc/api/morfologik/fsa/FSATraversal.html
deleted file mode 100644
index 65a778d..0000000
--- a/doc/api/morfologik/fsa/FSATraversal.html
+++ /dev/null
@@ -1,394 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSATraversal
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSATraversal";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSATraversal.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSATraversal.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class FSATraversal</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSATraversal</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>FSATraversal</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-This class implements some common matching and scanning operations on a
- generic FSA.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSATraversal.html#FSATraversal(morfologik.fsa.FSA)">FSATraversal</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Traversals of the given FSA.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSATraversal.html#match(byte[])">match</A></B>(byte[]&nbsp;sequence)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSATraversal.html#match(byte[], int)">match</A></B>(byte[]&nbsp;sequence,
- int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSATraversal.html#match(byte[], int, int, int)">match</A></B>(byte[]&nbsp;sequence,
- int&nbsp;start,
- int&nbsp;length,
- int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Finds a matching path in the dictionary for a given sequence of labels
- from <code>sequence</code> and starting at node <code>node</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSATraversal.html#match(morfologik.fsa.MatchResult, byte[], int, int, int)">match</A></B>(<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>&nbsp;result,
- byte[]&nbsp;sequence,
- int&nbsp;start,
- int&nbsp;length,
- int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as <A HREF="../../morfologik/fsa/FSATraversal.html#match(byte[], int, int, int)"><CODE>match(byte[], int, int, int)</CODE></A>, but allows passing
- a reusable <A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><CODE>MatchResult</CODE></A> object so that no intermediate garbage is
- produced.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSATraversal.html#perfectHash(byte[])">perfectHash</A></B>(byte[]&nbsp;sequence)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSATraversal.html#perfectHash(byte[], int, int, int)">perfectHash</A></B>(byte[]&nbsp;sequence,
- int&nbsp;start,
- int&nbsp;length,
- int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculate perfect hash for a given input sequence of bytes.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSATraversal(morfologik.fsa.FSA)"><!-- --></A><H3>
-FSATraversal</H3>
-<PRE>
-public <B>FSATraversal</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa)</PRE>
-<DL>
-<DD>Traversals of the given FSA.
-<P>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="perfectHash(byte[], int, int, int)"><!-- --></A><H3>
-perfectHash</H3>
-<PRE>
-public int <B>perfectHash</B>(byte[]&nbsp;sequence,
- int&nbsp;start,
- int&nbsp;length,
- int&nbsp;node)</PRE>
-<DL>
-<DD>Calculate perfect hash for a given input sequence of bytes. The perfect hash requires
- that <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> is built with <A HREF="../../morfologik/fsa/FSAFlags.html#NUMBERS"><CODE>FSAFlags.NUMBERS</CODE></A> and corresponds to the sequential
- order of input sequences used at automaton construction time.
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>start</CODE> - Start index in the sequence array.<DD><CODE>length</CODE> - Length of the byte sequence, must be at least 1.
-<DT><B>Returns:</B><DD>Returns a unique integer assigned to the input sequence in the automaton (reflecting
- the number of that sequence in the input used to build the automaton). Returns a negative
- integer if the input sequence was not part of the input from which the automaton was created.
- The type of mismatch is a constant defined in <A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><CODE>MatchResult</CODE></A>.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="perfectHash(byte[])"><!-- --></A><H3>
-perfectHash</H3>
-<PRE>
-public int <B>perfectHash</B>(byte[]&nbsp;sequence)</PRE>
-<DL>
-<DD><DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSATraversal.html#perfectHash(byte[], int, int, int)"><CODE>perfectHash(byte[], int, int, int)</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="match(morfologik.fsa.MatchResult, byte[], int, int, int)"><!-- --></A><H3>
-match</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A> <B>match</B>(<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A>&nbsp;result,
- byte[]&nbsp;sequence,
- int&nbsp;start,
- int&nbsp;length,
- int&nbsp;node)</PRE>
-<DL>
-<DD>Same as <A HREF="../../morfologik/fsa/FSATraversal.html#match(byte[], int, int, int)"><CODE>match(byte[], int, int, int)</CODE></A>, but allows passing
- a reusable <A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><CODE>MatchResult</CODE></A> object so that no intermediate garbage is
- produced.
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>The same object as <code>result</code>, but with reset internal
- type and other fields.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="match(byte[], int, int, int)"><!-- --></A><H3>
-match</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A> <B>match</B>(byte[]&nbsp;sequence,
- int&nbsp;start,
- int&nbsp;length,
- int&nbsp;node)</PRE>
-<DL>
-<DD>Finds a matching path in the dictionary for a given sequence of labels
- from <code>sequence</code> and starting at node <code>node</code>.
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>sequence</CODE> - An array of labels to follow in the FSA.<DD><CODE>start</CODE> - Starting index in <code>sequence</code>.<DD><CODE>length</CODE> - How many symbols to consider from <code>sequence</code>?<DD><CODE>node</CODE> - Start node identifier in the FSA.<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSATraversal.html#match(byte[], int)"><CODE>match(byte [], int)</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="match(byte[], int)"><!-- --></A><H3>
-match</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A> <B>match</B>(byte[]&nbsp;sequence,
- int&nbsp;node)</PRE>
-<DL>
-<DD><DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSATraversal.html#match(byte[], int, int, int)"><CODE>match(byte[], int, int, int)</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="match(byte[])"><!-- --></A><H3>
-match</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A> <B>match</B>(byte[]&nbsp;sequence)</PRE>
-<DL>
-<DD><DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSATraversal.html#match(byte[], int, int, int)"><CODE>match(byte[], int, int, int)</CODE></A></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSATraversal.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSATraversal.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSAUtils.IntIntHolder.html b/doc/api/morfologik/fsa/FSAUtils.IntIntHolder.html
deleted file mode 100644
index 871d878..0000000
--- a/doc/api/morfologik/fsa/FSAUtils.IntIntHolder.html
+++ /dev/null
@@ -1,295 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSAUtils.IntIntHolder
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSAUtils.IntIntHolder";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSAUtils.IntIntHolder.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSAUtils.IntIntHolder.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class FSAUtils.IntIntHolder</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSAUtils.IntIntHolder</B>
-</PRE>
-<DL>
-<DT><B>Enclosing class:</B><DD><A HREF="../../morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa">FSAUtils</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public static final class <B>FSAUtils.IntIntHolder</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html#a">a</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html#b">b</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html#FSAUtils.IntIntHolder()">FSAUtils.IntIntHolder</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html#FSAUtils.IntIntHolder(int, int)">FSAUtils.IntIntHolder</A></B>(int&nbsp;a,
- int&nbsp;b)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="a"><!-- --></A><H3>
-a</H3>
-<PRE>
-public int <B>a</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="b"><!-- --></A><H3>
-b</H3>
-<PRE>
-public int <B>b</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSAUtils.IntIntHolder(int, int)"><!-- --></A><H3>
-FSAUtils.IntIntHolder</H3>
-<PRE>
-public <B>FSAUtils.IntIntHolder</B>(int&nbsp;a,
- int&nbsp;b)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FSAUtils.IntIntHolder()"><!-- --></A><H3>
-FSAUtils.IntIntHolder</H3>
-<PRE>
-public <B>FSAUtils.IntIntHolder</B>()</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSAUtils.IntIntHolder.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSAUtils.IntIntHolder.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/FSAUtils.html b/doc/api/morfologik/fsa/FSAUtils.html
deleted file mode 100644
index 53b4725..0000000
--- a/doc/api/morfologik/fsa/FSAUtils.html
+++ /dev/null
@@ -1,379 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-FSAUtils
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSAUtils";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSAUtils.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSAUtils.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class FSAUtils</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.FSAUtils</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>FSAUtils</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Other FSA-related utilities not directly associated with the class hierarchy.
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<A NAME="nested_class_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Nested Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa">FSAUtils.IntIntHolder</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.html#FSAUtils()">FSAUtils</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.util.TreeMap&lt;java.lang.Integer,java.lang.Integer&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.html#calculateFanOuts(morfologik.fsa.FSA, int)">calculateFanOuts</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- int&nbsp;root)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculate fan-out ratio.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.util.ArrayList&lt;byte[]&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.html#rightLanguage(morfologik.fsa.FSA, int)">rightLanguage</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- int&nbsp;state)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;All byte sequences generated as the right language of <code>state</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;com.carrotsearch.hppc.IntIntOpenHashMap</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.html#rightLanguageForAllStates(morfologik.fsa.FSA)">rightLanguageForAllStates</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Calculate the size of right language for each state in an FSA.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.html#toDot(morfologik.fsa.FSA, int)">toDot</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the right-language reachable from a given FSA node, formatted
- as an input for the graphviz package (expressed in the <code>dot</code>
- language).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/FSAUtils.html#toDot(java.io.Writer, morfologik.fsa.FSA, int)">toDot</A></B>(java.io.Writer&nbsp;w,
- <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- int&nbsp;node)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Saves the right-language reachable from a given FSA node, formatted
- as an input for the graphviz package (expressed in the <code>dot</code>
- language), to the given writer.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSAUtils()"><!-- --></A><H3>
-FSAUtils</H3>
-<PRE>
-public <B>FSAUtils</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="toDot(morfologik.fsa.FSA, int)"><!-- --></A><H3>
-toDot</H3>
-<PRE>
-public static java.lang.String <B>toDot</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- int&nbsp;node)</PRE>
-<DL>
-<DD>Returns the right-language reachable from a given FSA node, formatted
- as an input for the graphviz package (expressed in the <code>dot</code>
- language).
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="toDot(java.io.Writer, morfologik.fsa.FSA, int)"><!-- --></A><H3>
-toDot</H3>
-<PRE>
-public static void <B>toDot</B>(java.io.Writer&nbsp;w,
- <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- int&nbsp;node)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Saves the right-language reachable from a given FSA node, formatted
- as an input for the graphviz package (expressed in the <code>dot</code>
- language), to the given writer.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="rightLanguage(morfologik.fsa.FSA, int)"><!-- --></A><H3>
-rightLanguage</H3>
-<PRE>
-public static java.util.ArrayList&lt;byte[]&gt; <B>rightLanguage</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- int&nbsp;state)</PRE>
-<DL>
-<DD>All byte sequences generated as the right language of <code>state</code>.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="calculateFanOuts(morfologik.fsa.FSA, int)"><!-- --></A><H3>
-calculateFanOuts</H3>
-<PRE>
-public static java.util.TreeMap&lt;java.lang.Integer,java.lang.Integer&gt; <B>calculateFanOuts</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- int&nbsp;root)</PRE>
-<DL>
-<DD>Calculate fan-out ratio.
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>The returned array: result[outgoing-arcs]</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="rightLanguageForAllStates(morfologik.fsa.FSA)"><!-- --></A><H3>
-rightLanguageForAllStates</H3>
-<PRE>
-public static com.carrotsearch.hppc.IntIntOpenHashMap <B>rightLanguageForAllStates</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa)</PRE>
-<DL>
-<DD>Calculate the size of right language for each state in an FSA.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/FSAUtils.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSAUtils.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/MatchResult.html b/doc/api/morfologik/fsa/MatchResult.html
deleted file mode 100644
index 889c378..0000000
--- a/doc/api/morfologik/fsa/MatchResult.html
+++ /dev/null
@@ -1,397 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-MatchResult
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="MatchResult";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/MatchResult.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="MatchResult.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Class MatchResult</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.fsa.MatchResult</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>MatchResult</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-A matching result returned from <A HREF="../../morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><CODE>FSATraversal</CODE></A>.
-<P>
-
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><CODE>FSATraversal</CODE></A></DL>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/MatchResult.html#AUTOMATON_HAS_PREFIX">AUTOMATON_HAS_PREFIX</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The automaton contains a prefix of the input sequence.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/MatchResult.html#EXACT_MATCH">EXACT_MATCH</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The automaton has exactly one match for the input sequence.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/MatchResult.html#index">index</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Input sequence's index, interpretation depends on <A HREF="../../morfologik/fsa/MatchResult.html#kind"><CODE>kind</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/MatchResult.html#kind">kind</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;One of the match kind constants defined in this class.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/MatchResult.html#NO_MATCH">NO_MATCH</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The automaton has no match for the input sequence.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/MatchResult.html#node">node</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Automaton node, interpretation depends on the <A HREF="../../morfologik/fsa/MatchResult.html#kind"><CODE>kind</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/MatchResult.html#SEQUENCE_IS_A_PREFIX">SEQUENCE_IS_A_PREFIX</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The sequence is a prefix of at least one sequence in the automaton.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/fsa/MatchResult.html#MatchResult()">MatchResult</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="EXACT_MATCH"><!-- --></A><H3>
-EXACT_MATCH</H3>
-<PRE>
-public static final int <B>EXACT_MATCH</B></PRE>
-<DL>
-<DD>The automaton has exactly one match for the input sequence.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.MatchResult.EXACT_MATCH">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="NO_MATCH"><!-- --></A><H3>
-NO_MATCH</H3>
-<PRE>
-public static final int <B>NO_MATCH</B></PRE>
-<DL>
-<DD>The automaton has no match for the input sequence.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.MatchResult.NO_MATCH">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="AUTOMATON_HAS_PREFIX"><!-- --></A><H3>
-AUTOMATON_HAS_PREFIX</H3>
-<PRE>
-public static final int <B>AUTOMATON_HAS_PREFIX</B></PRE>
-<DL>
-<DD>The automaton contains a prefix of the input sequence. That is:
- one of the input sequences used to build the automaton is a
- prefix of the input sequence that is shorter than the sequence.
-
- <p><A HREF="../../morfologik/fsa/MatchResult.html#index"><CODE>index</CODE></A> will contain an index of the
- first character of the input sequence not present in the
- dictionary.</p>
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.MatchResult.AUTOMATON_HAS_PREFIX">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="SEQUENCE_IS_A_PREFIX"><!-- --></A><H3>
-SEQUENCE_IS_A_PREFIX</H3>
-<PRE>
-public static final int <B>SEQUENCE_IS_A_PREFIX</B></PRE>
-<DL>
-<DD>The sequence is a prefix of at least one sequence in the automaton.
- <A HREF="../../morfologik/fsa/MatchResult.html#node"><CODE>node</CODE></A> returns the node from which all sequences
- with the given prefix start in the automaton.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.fsa.MatchResult.SEQUENCE_IS_A_PREFIX">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="kind"><!-- --></A><H3>
-kind</H3>
-<PRE>
-public int <B>kind</B></PRE>
-<DL>
-<DD>One of the match kind constants defined in this class.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/MatchResult.html#NO_MATCH"><CODE>NO_MATCH</CODE></A>,
-<A HREF="../../morfologik/fsa/MatchResult.html#EXACT_MATCH"><CODE>EXACT_MATCH</CODE></A>,
-<A HREF="../../morfologik/fsa/MatchResult.html#AUTOMATON_HAS_PREFIX"><CODE>AUTOMATON_HAS_PREFIX</CODE></A>,
-<A HREF="../../morfologik/fsa/MatchResult.html#SEQUENCE_IS_A_PREFIX"><CODE>SEQUENCE_IS_A_PREFIX</CODE></A></DL>
-</DL>
-<HR>
-
-<A NAME="index"><!-- --></A><H3>
-index</H3>
-<PRE>
-public int <B>index</B></PRE>
-<DL>
-<DD>Input sequence's index, interpretation depends on <A HREF="../../morfologik/fsa/MatchResult.html#kind"><CODE>kind</CODE></A>.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="node"><!-- --></A><H3>
-node</H3>
-<PRE>
-public int <B>node</B></PRE>
-<DL>
-<DD>Automaton node, interpretation depends on the <A HREF="../../morfologik/fsa/MatchResult.html#kind"><CODE>kind</CODE></A>.
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="MatchResult()"><!-- --></A><H3>
-MatchResult</H3>
-<PRE>
-public <B>MatchResult</B>()</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/MatchResult.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="MatchResult.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/StateVisitor.html b/doc/api/morfologik/fsa/StateVisitor.html
deleted file mode 100644
index a8bbf0b..0000000
--- a/doc/api/morfologik/fsa/StateVisitor.html
+++ /dev/null
@@ -1,211 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-StateVisitor
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="StateVisitor";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/StateVisitor.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="StateVisitor.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.fsa</FONT>
-<BR>
-Interface StateVisitor</H2>
-<HR>
-<DL>
-<DT><PRE>public interface <B>StateVisitor</B></DL>
-</PRE>
-
-<P>
-State visitor.
-<P>
-
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/fsa/FSA.html#visitInPostOrder(T)"><CODE>FSA.visitInPostOrder(StateVisitor)</CODE></A>,
-<A HREF="../../morfologik/fsa/FSA.html#visitInPreOrder(T)"><CODE>FSA.visitInPreOrder(StateVisitor)</CODE></A></DL>
-<HR>
-
-<P>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/fsa/StateVisitor.html#accept(int)">accept</A></B>(int&nbsp;state)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="accept(int)"><!-- --></A><H3>
-accept</H3>
-<PRE>
-boolean <B>accept</B>(int&nbsp;state)</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/StateVisitor.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="StateVisitor.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/package-frame.html b/doc/api/morfologik/fsa/package-frame.html
deleted file mode 100644
index e4fec52..0000000
--- a/doc/api/morfologik/fsa/package-frame.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.fsa
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameTitleFont">
-<A HREF="../../morfologik/fsa/package-summary.html" target="classFrame">morfologik.fsa</A></FONT>
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Interfaces</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="FSASerializer.html" title="interface in morfologik.fsa" target="classFrame"><I>FSASerializer</I></A>
-<BR>
-<A HREF="StateVisitor.html" title="interface in morfologik.fsa" target="classFrame"><I>StateVisitor</I></A></FONT></TD>
-</TR>
-</TABLE>
-
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Classes</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="CFSA.html" title="class in morfologik.fsa" target="classFrame">CFSA</A>
-<BR>
-<A HREF="CFSA2.html" title="class in morfologik.fsa" target="classFrame">CFSA2</A>
-<BR>
-<A HREF="CFSA2Serializer.html" title="class in morfologik.fsa" target="classFrame">CFSA2Serializer</A>
-<BR>
-<A HREF="ConstantArcSizeFSA.html" title="class in morfologik.fsa" target="classFrame">ConstantArcSizeFSA</A>
-<BR>
-<A HREF="FSA.html" title="class in morfologik.fsa" target="classFrame">FSA</A>
-<BR>
-<A HREF="FSA5.html" title="class in morfologik.fsa" target="classFrame">FSA5</A>
-<BR>
-<A HREF="FSA5Serializer.html" title="class in morfologik.fsa" target="classFrame">FSA5Serializer</A>
-<BR>
-<A HREF="FSABuilder.html" title="class in morfologik.fsa" target="classFrame">FSABuilder</A>
-<BR>
-<A HREF="FSAFinalStatesIterator.html" title="class in morfologik.fsa" target="classFrame">FSAFinalStatesIterator</A>
-<BR>
-<A HREF="FSAInfo.html" title="class in morfologik.fsa" target="classFrame">FSAInfo</A>
-<BR>
-<A HREF="FSATraversal.html" title="class in morfologik.fsa" target="classFrame">FSATraversal</A>
-<BR>
-<A HREF="FSAUtils.html" title="class in morfologik.fsa" target="classFrame">FSAUtils</A>
-<BR>
-<A HREF="FSAUtils.IntIntHolder.html" title="class in morfologik.fsa" target="classFrame">FSAUtils.IntIntHolder</A>
-<BR>
-<A HREF="MatchResult.html" title="class in morfologik.fsa" target="classFrame">MatchResult</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Enums</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="FSABuilder.InfoEntry.html" title="enum in morfologik.fsa" target="classFrame">FSABuilder.InfoEntry</A>
-<BR>
-<A HREF="FSAFlags.html" title="enum in morfologik.fsa" target="classFrame">FSAFlags</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/package-summary.html b/doc/api/morfologik/fsa/package-summary.html
deleted file mode 100644
index aba058d..0000000
--- a/doc/api/morfologik/fsa/package-summary.html
+++ /dev/null
@@ -1,251 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.fsa
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="morfologik.fsa";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV PACKAGE&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<H2>
-Package morfologik.fsa
-</H2>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Interface Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></B></TD>
-<TD>All FSA serializers to binary formats will implement this interface.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa">StateVisitor</A></B></TD>
-<TD>State visitor.</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/CFSA.html" title="class in morfologik.fsa">CFSA</A></B></TD>
-<TD>CFSA (Compact Finite State Automaton) binary format implementation.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa">CFSA2</A></B></TD>
-<TD>CFSA (Compact Finite State Automaton) binary format implementation, version 2:
-
- <A HREF="../../morfologik/fsa/CFSA2.html#BIT_TARGET_NEXT"><CODE>CFSA2.BIT_TARGET_NEXT</CODE></A> applicable on all arcs, not necessarily the last one.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa">CFSA2Serializer</A></B></TD>
-<TD>Serializes in-memory <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> graphs to <A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><CODE>CFSA2</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa">ConstantArcSizeFSA</A></B></TD>
-<TD>An FSA with constant-size arc representation produced directly
- by <A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><CODE>FSABuilder</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></B></TD>
-<TD>This is a top abstract class for handling finite state automata.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSA5.html" title="class in morfologik.fsa">FSA5</A></B></TD>
-<TD>FSA binary format implementation for version 5.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa">FSA5Serializer</A></B></TD>
-<TD>Serializes in-memory <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> graphs to a binary format compatible with
- Jan Daciuk's <code>fsa</code>'s package <code>FSA5</code> format.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa">FSABuilder</A></B></TD>
-<TD>Fast, memory-conservative finite state automaton builder, returning a
- byte-serialized <A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa"><CODE>ConstantArcSizeFSA</CODE></A> (a tradeoff between construction
- speed and memory consumption).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa">FSAFinalStatesIterator</A></B></TD>
-<TD>An iterator that traverses the right language of a given node (all sequences
- reachable from a given node).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa">FSAInfo</A></B></TD>
-<TD>Compute additional information about an FSA: number of arcs, nodes, etc.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa">FSATraversal</A></B></TD>
-<TD>This class implements some common matching and scanning operations on a
- generic FSA.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa">FSAUtils</A></B></TD>
-<TD>Other FSA-related utilities not directly associated with the class hierarchy.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa">FSAUtils.IntIntHolder</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa">MatchResult</A></B></TD>
-<TD>A matching result returned from <A HREF="../../morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><CODE>FSATraversal</CODE></A>.</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Enum Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa">FSABuilder.InfoEntry</A></B></TD>
-<TD>Debug and information constants.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa">FSAFlags</A></B></TD>
-<TD>FSA automaton flags.</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-<DL>
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV PACKAGE&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/fsa/package-tree.html b/doc/api/morfologik/fsa/package-tree.html
deleted file mode 100644
index be565e3..0000000
--- a/doc/api/morfologik/fsa/package-tree.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.fsa Class Hierarchy
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="morfologik.fsa Class Hierarchy";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/package-tree.html"><B>NEXT</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-Hierarchy For Package morfologik.fsa
-</H2>
-</CENTER>
-<DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../overview-tree.html">All Packages</A></DL>
-<HR>
-<H2>
-Class Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa"><B>CFSA2Serializer</B></A> (implements morfologik.fsa.<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A>)
-<LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><B>FSA</B></A> (implements java.lang.Iterable&lt;T&gt;)
-<UL>
-<LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/CFSA.html" title="class in morfologik.fsa"><B>CFSA</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><B>CFSA2</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa"><B>ConstantArcSizeFSA</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSA5.html" title="class in morfologik.fsa"><B>FSA5</B></A></UL>
-<LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa"><B>FSA5Serializer</B></A> (implements morfologik.fsa.<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A>)
-<LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><B>FSABuilder</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa"><B>FSAFinalStatesIterator</B></A> (implements java.util.Iterator&lt;E&gt;)
-<LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa"><B>FSAInfo</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><B>FSATraversal</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa"><B>FSAUtils</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa"><B>FSAUtils.IntIntHolder</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><B>MatchResult</B></A></UL>
-</UL>
-<H2>
-Interface Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa"><B>FSASerializer</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa"><B>StateVisitor</B></A></UL>
-<H2>
-Enum Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
-<UL>
-<LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa"><B>FSAFlags</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="../../morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa"><B>FSABuilder.InfoEntry</B></A></UL>
-</UL>
-</UL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/package-tree.html"><B>NEXT</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/fsa/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/stemming/Dictionary.html b/doc/api/morfologik/stemming/Dictionary.html
deleted file mode 100644
index 9ed04ce..0000000
--- a/doc/api/morfologik/stemming/Dictionary.html
+++ /dev/null
@@ -1,489 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-Dictionary
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Dictionary";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/Dictionary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="Dictionary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.stemming</FONT>
-<BR>
-Class Dictionary</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.stemming.Dictionary</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>Dictionary</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-A dictionary combines <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> automaton and metadata describing the
- internals of dictionary entries' coding (<A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><CODE>DictionaryMetadata</CODE></A>.
-
- <p>
- A dictionary consists of two files:
- <ul>
- <li>an actual compressed FSA file,
- <li>a metadata file, describing the dictionary.
- </ul>
- Use static methods in this class to read dictionaries and their metadata.
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.util.WeakHashMap&lt;java.lang.String,<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/Dictionary.html#defaultDictionaries">defaultDictionaries</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default loaded dictionaries.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/Dictionary.html#fsa">fsa</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> automaton with the compiled dictionary data.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/Dictionary.html#metadata">metadata</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Metadata associated with the dictionary.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/Dictionary.html#METADATA_FILE_EXTENSION">METADATA_FILE_EXTENSION</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Expected metadata file extension.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/stemming/Dictionary.html#Dictionary(morfologik.fsa.FSA, morfologik.stemming.DictionaryMetadata)">Dictionary</A></B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- <A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>&nbsp;metadata)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;It is strongly recommended to use static methods in this class for
- reading dictionaries.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/Dictionary.html#getExpectedFeaturesName(java.lang.String)">getExpectedFeaturesName</A></B>(java.lang.String&nbsp;name)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the expected name of the metadata file, based on the name of the
- FSA dictionary file.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/Dictionary.html#getForLanguage(java.lang.String)">getForLanguage</A></B>(java.lang.String&nbsp;languageCode)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a built-in dictionary for a given ISO language code.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/Dictionary.html#read(java.io.File)">read</A></B>(java.io.File&nbsp;fsaFile)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attempts to load a dictionary using the path to the FSA file and the
- expected metadata extension.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/Dictionary.html#read(java.net.URL)">read</A></B>(java.net.URL&nbsp;fsaURL)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- Attempts to load a dictionary using the URL to the FSA file and the
- expected metadata extension.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/Dictionary.html#readAndClose(java.io.InputStream, java.io.InputStream)">readAndClose</A></B>(java.io.InputStream&nbsp;fsaData,
- java.io.InputStream&nbsp;featuresData)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attempts to load a dictionary from opened streams of FSA dictionary data
- and associated metadata.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="METADATA_FILE_EXTENSION"><!-- --></A><H3>
-METADATA_FILE_EXTENSION</H3>
-<PRE>
-public static final java.lang.String <B>METADATA_FILE_EXTENSION</B></PRE>
-<DL>
-<DD>Expected metadata file extension.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.stemming.Dictionary.METADATA_FILE_EXTENSION">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="fsa"><!-- --></A><H3>
-fsa</H3>
-<PRE>
-public final <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A> <B>fsa</B></PRE>
-<DL>
-<DD><A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> automaton with the compiled dictionary data.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="metadata"><!-- --></A><H3>
-metadata</H3>
-<PRE>
-public final <A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A> <B>metadata</B></PRE>
-<DL>
-<DD>Metadata associated with the dictionary.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="defaultDictionaries"><!-- --></A><H3>
-defaultDictionaries</H3>
-<PRE>
-public static final java.util.WeakHashMap&lt;java.lang.String,<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>&gt; <B>defaultDictionaries</B></PRE>
-<DL>
-<DD>Default loaded dictionaries.
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="Dictionary(morfologik.fsa.FSA, morfologik.stemming.DictionaryMetadata)"><!-- --></A><H3>
-Dictionary</H3>
-<PRE>
-public <B>Dictionary</B>(<A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa">FSA</A>&nbsp;fsa,
- <A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>&nbsp;metadata)</PRE>
-<DL>
-<DD>It is strongly recommended to use static methods in this class for
- reading dictionaries.
-<P>
-<DL>
-<DT><B>Parameters:</B><DD><CODE>fsa</CODE> - An instantiated <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> instance.<DD><CODE>metadata</CODE> - A map of attributes describing the compression format and
- other settings not contained in the FSA automaton. For an
- explanation of available attributes and their possible values,
- see <A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><CODE>DictionaryMetadata</CODE></A>.</DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="read(java.io.File)"><!-- --></A><H3>
-read</H3>
-<PRE>
-public static <A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A> <B>read</B>(java.io.File&nbsp;fsaFile)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Attempts to load a dictionary using the path to the FSA file and the
- expected metadata extension.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="read(java.net.URL)"><!-- --></A><H3>
-read</H3>
-<PRE>
-public static <A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A> <B>read</B>(java.net.URL&nbsp;fsaURL)
- throws java.io.IOException</PRE>
-<DL>
-<DD><p>
- Attempts to load a dictionary using the URL to the FSA file and the
- expected metadata extension.
-
- <p>
- This method can be used to load resource-based dictionaries, but be aware
- of JAR resource-locking issues that arise from resource URLs.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="readAndClose(java.io.InputStream, java.io.InputStream)"><!-- --></A><H3>
-readAndClose</H3>
-<PRE>
-public static <A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A> <B>readAndClose</B>(java.io.InputStream&nbsp;fsaData,
- java.io.InputStream&nbsp;featuresData)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Attempts to load a dictionary from opened streams of FSA dictionary data
- and associated metadata.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getExpectedFeaturesName(java.lang.String)"><!-- --></A><H3>
-getExpectedFeaturesName</H3>
-<PRE>
-public static java.lang.String <B>getExpectedFeaturesName</B>(java.lang.String&nbsp;name)</PRE>
-<DL>
-<DD>Returns the expected name of the metadata file, based on the name of the
- FSA dictionary file. The expected name is resolved by truncating any
- suffix of <code>name</code> and appending
- <A HREF="../../morfologik/stemming/Dictionary.html#METADATA_FILE_EXTENSION"><CODE>METADATA_FILE_EXTENSION</CODE></A>.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getForLanguage(java.lang.String)"><!-- --></A><H3>
-getForLanguage</H3>
-<PRE>
-public static <A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A> <B>getForLanguage</B>(java.lang.String&nbsp;languageCode)</PRE>
-<DL>
-<DD>Return a built-in dictionary for a given ISO language code. Dictionaries
- are cached internally for potential reuse.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.RuntimeException</CODE> - Throws a <CODE>RuntimeException</CODE> if the dictionary is not
- bundled with the library.</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/Dictionary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="Dictionary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/stemming/DictionaryIterator.html b/doc/api/morfologik/stemming/DictionaryIterator.html
deleted file mode 100644
index f857393..0000000
--- a/doc/api/morfologik/stemming/DictionaryIterator.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-DictionaryIterator
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="DictionaryIterator";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/DictionaryIterator.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="DictionaryIterator.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.stemming</FONT>
-<BR>
-Class DictionaryIterator</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.stemming.DictionaryIterator</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.util.Iterator&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>DictionaryIterator</B><DT>extends java.lang.Object<DT>implements java.util.Iterator&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</DL>
-</PRE>
-
-<P>
-An iterator over <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries of a <A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><CODE>Dictionary</CODE></A>. The stems
- can be decoded from compressed format or the compressed form can be
- preserved.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryIterator.html#DictionaryIterator(morfologik.stemming.Dictionary, java.nio.charset.CharsetDecoder, boolean)">DictionaryIterator</A></B>(<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>&nbsp;dictionary,
- java.nio.charset.CharsetDecoder&nbsp;decoder,
- boolean&nbsp;decodeStems)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryIterator.html#hasNext()">hasNext</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryIterator.html#next()">next</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryIterator.html#remove()">remove</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="DictionaryIterator(morfologik.stemming.Dictionary, java.nio.charset.CharsetDecoder, boolean)"><!-- --></A><H3>
-DictionaryIterator</H3>
-<PRE>
-public <B>DictionaryIterator</B>(<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>&nbsp;dictionary,
- java.nio.charset.CharsetDecoder&nbsp;decoder,
- boolean&nbsp;decodeStems)</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="hasNext()"><!-- --></A><H3>
-hasNext</H3>
-<PRE>
-public boolean <B>hasNext</B>()</PRE>
-<DL>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE>hasNext</CODE> in interface <CODE>java.util.Iterator&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="next()"><!-- --></A><H3>
-next</H3>
-<PRE>
-public <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A> <B>next</B>()</PRE>
-<DL>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE>next</CODE> in interface <CODE>java.util.Iterator&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="remove()"><!-- --></A><H3>
-remove</H3>
-<PRE>
-public void <B>remove</B>()</PRE>
-<DL>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE>remove</CODE> in interface <CODE>java.util.Iterator&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/DictionaryIterator.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="DictionaryIterator.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/stemming/DictionaryLookup.html b/doc/api/morfologik/stemming/DictionaryLookup.html
deleted file mode 100644
index 423b6ac..0000000
--- a/doc/api/morfologik/stemming/DictionaryLookup.html
+++ /dev/null
@@ -1,376 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-DictionaryLookup
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="DictionaryLookup";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/DictionaryLookup.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="DictionaryLookup.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.stemming</FONT>
-<BR>
-Class DictionaryLookup</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.stemming.DictionaryLookup</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Iterable&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;, <A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>DictionaryLookup</B><DT>extends java.lang.Object<DT>implements <A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A>, java.lang.Iterable&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</DL>
-</PRE>
-
-<P>
-This class implements a dictionary lookup over an FSA dictionary. The
- dictionary for this class should be prepared from a text file using Jan
- Daciuk's FSA package (see link below).
-
- <p>
- <b>Important:</b> finite state automatons in Jan Daciuk's implementation use
- <em>bytes</em> not unicode characters. Therefore objects of this class always
- have to be constructed with an encoding used to convert Java strings to byte
- arrays and the other way around. You <b>can</b> use UTF-8 encoding, as it
- should not conflict with any control sequences and separator characters.
-<P>
-
-<P>
-<DL>
-<DT><B>See Also:</B><DD><a href="http://www.eti.pg.gda.pl/~jandac/fsa.html">FSA package Web
- site</a></DL>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryLookup.html#DictionaryLookup(morfologik.stemming.Dictionary)">DictionaryLookup</A></B>(<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>&nbsp;dictionary)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- Creates a new object of this class using the given FSA for word lookups
- and encoding for converting characters to bytes.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.nio.ByteBuffer</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryLookup.html#decodeStem(java.nio.ByteBuffer, byte[], int, java.nio.ByteBuffer, morfologik.stemming.DictionaryMetadata)">decodeStem</A></B>(java.nio.ByteBuffer&nbsp;bb,
- byte[]&nbsp;bytes,
- int&nbsp;len,
- java.nio.ByteBuffer&nbsp;inflectedBuffer,
- <A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>&nbsp;metadata)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Decode the base form of an inflected word and save its decoded form into
- a byte buffer.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryLookup.html#getDictionary()">getDictionary</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Iterator&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryLookup.html#iterator()">iterator</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return an iterator over all <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries available in the
- embedded <A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><CODE>Dictionary</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.List&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryLookup.html#lookup(java.lang.CharSequence)">lookup</A></B>(java.lang.CharSequence&nbsp;word)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Searches the automaton for a symbol sequence equal to <code>word</code>,
- followed by a separator.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="DictionaryLookup(morfologik.stemming.Dictionary)"><!-- --></A><H3>
-DictionaryLookup</H3>
-<PRE>
-public <B>DictionaryLookup</B>(<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A>&nbsp;dictionary)
- throws java.lang.IllegalArgumentException</PRE>
-<DL>
-<DD><p>
- Creates a new object of this class using the given FSA for word lookups
- and encoding for converting characters to bytes.
-<P>
-<DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.IllegalArgumentException</CODE> - if FSA's root node cannot be acquired (dictionary is empty).</DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="lookup(java.lang.CharSequence)"><!-- --></A><H3>
-lookup</H3>
-<PRE>
-public java.util.List&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt; <B>lookup</B>(java.lang.CharSequence&nbsp;word)</PRE>
-<DL>
-<DD>Searches the automaton for a symbol sequence equal to <code>word</code>,
- followed by a separator. The result is a stem (decompressed accordingly
- to the dictionary's specification) and an optional tag data.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/stemming/IStemmer.html#lookup(java.lang.CharSequence)">lookup</A></CODE> in interface <CODE><A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="decodeStem(java.nio.ByteBuffer, byte[], int, java.nio.ByteBuffer, morfologik.stemming.DictionaryMetadata)"><!-- --></A><H3>
-decodeStem</H3>
-<PRE>
-public static java.nio.ByteBuffer <B>decodeStem</B>(java.nio.ByteBuffer&nbsp;bb,
- byte[]&nbsp;bytes,
- int&nbsp;len,
- java.nio.ByteBuffer&nbsp;inflectedBuffer,
- <A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A>&nbsp;metadata)</PRE>
-<DL>
-<DD>Decode the base form of an inflected word and save its decoded form into
- a byte buffer.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>bb</CODE> - The byte buffer to save the result to. A new buffer may be
- allocated if the capacity of <code>bb</code> is not large
- enough to store the result. The buffer is not flipped upon
- return.<DD><CODE>inflectedBuffer</CODE> - Inflected form's bytes (decoded properly).<DD><CODE>bytes</CODE> - Bytes of the encoded base form, starting at 0 index.<DD><CODE>len</CODE> - Length of the encode base form.
-<DT><B>Returns:</B><DD>Returns either <code>bb</code> or a new buffer whose capacity is
- large enough to store the output of the decoded data.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="iterator()"><!-- --></A><H3>
-iterator</H3>
-<PRE>
-public java.util.Iterator&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt; <B>iterator</B>()</PRE>
-<DL>
-<DD>Return an iterator over all <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries available in the
- embedded <A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><CODE>Dictionary</CODE></A>.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE>iterator</CODE> in interface <CODE>java.lang.Iterable&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getDictionary()"><!-- --></A><H3>
-getDictionary</H3>
-<PRE>
-public <A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A> <B>getDictionary</B>()</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Return the <A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><CODE>Dictionary</CODE></A> used by this object.</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/DictionaryLookup.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="DictionaryLookup.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/stemming/DictionaryMetadata.html b/doc/api/morfologik/stemming/DictionaryMetadata.html
deleted file mode 100644
index 63b289f..0000000
--- a/doc/api/morfologik/stemming/DictionaryMetadata.html
+++ /dev/null
@@ -1,437 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:37 CET 2011 -->
-<TITLE>
-DictionaryMetadata
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="DictionaryMetadata";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/DictionaryMetadata.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="DictionaryMetadata.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.stemming</FONT>
-<BR>
-Class DictionaryMetadata</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.stemming.DictionaryMetadata</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>DictionaryMetadata</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Description of attributes, their types and default values.
-<P>
-
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><CODE>Dictionary</CODE></A></DL>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_ENCODING">ATTR_NAME_ENCODING</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute name for <A HREF="../../morfologik/stemming/DictionaryMetadata.html#encoding"><CODE>encoding</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_SEPARATOR">ATTR_NAME_SEPARATOR</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute name for <A HREF="../../morfologik/stemming/DictionaryMetadata.html#separator"><CODE>separator</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_USES_INFIXES">ATTR_NAME_USES_INFIXES</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute name for <A HREF="../../morfologik/stemming/DictionaryMetadata.html#usesInfixes"><CODE>usesInfixes</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html#ATTR_NAME_USES_PREFIXES">ATTR_NAME_USES_PREFIXES</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attribute name for <A HREF="../../morfologik/stemming/DictionaryMetadata.html#usesPrefixes"><CODE>usesPrefixes</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html#encoding">encoding</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encoding used for converting bytes to characters and vice versa.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Map&lt;java.lang.String,java.lang.String&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html#metadata">metadata</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Other meta data not included above.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html#separator">separator</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A separator character between fields (stem, lemma, form).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html#usesInfixes">usesInfixes</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if the dictionary was compiled with infix compression.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html#usesPrefixes">usesPrefixes</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if the dictionary was compiled with prefix compression.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html#DictionaryMetadata(char, java.lang.String, boolean, boolean, java.util.Map)">DictionaryMetadata</A></B>(char&nbsp;separator,
- java.lang.String&nbsp;encoding,
- boolean&nbsp;usesPrefixes,
- boolean&nbsp;usesInfixes,
- java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;metadata)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an immutable instance of <A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><CODE>DictionaryMetadata</CODE></A>.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="ATTR_NAME_SEPARATOR"><!-- --></A><H3>
-ATTR_NAME_SEPARATOR</H3>
-<PRE>
-public static final java.lang.String <B>ATTR_NAME_SEPARATOR</B></PRE>
-<DL>
-<DD>Attribute name for <A HREF="../../morfologik/stemming/DictionaryMetadata.html#separator"><CODE>separator</CODE></A>.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.stemming.DictionaryMetadata.ATTR_NAME_SEPARATOR">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="ATTR_NAME_ENCODING"><!-- --></A><H3>
-ATTR_NAME_ENCODING</H3>
-<PRE>
-public static final java.lang.String <B>ATTR_NAME_ENCODING</B></PRE>
-<DL>
-<DD>Attribute name for <A HREF="../../morfologik/stemming/DictionaryMetadata.html#encoding"><CODE>encoding</CODE></A>.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.stemming.DictionaryMetadata.ATTR_NAME_ENCODING">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="ATTR_NAME_USES_PREFIXES"><!-- --></A><H3>
-ATTR_NAME_USES_PREFIXES</H3>
-<PRE>
-public static final java.lang.String <B>ATTR_NAME_USES_PREFIXES</B></PRE>
-<DL>
-<DD>Attribute name for <A HREF="../../morfologik/stemming/DictionaryMetadata.html#usesPrefixes"><CODE>usesPrefixes</CODE></A>.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.stemming.DictionaryMetadata.ATTR_NAME_USES_PREFIXES">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="ATTR_NAME_USES_INFIXES"><!-- --></A><H3>
-ATTR_NAME_USES_INFIXES</H3>
-<PRE>
-public static final java.lang.String <B>ATTR_NAME_USES_INFIXES</B></PRE>
-<DL>
-<DD>Attribute name for <A HREF="../../morfologik/stemming/DictionaryMetadata.html#usesInfixes"><CODE>usesInfixes</CODE></A>.
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#morfologik.stemming.DictionaryMetadata.ATTR_NAME_USES_INFIXES">Constant Field Values</A></DL>
-</DL>
-<HR>
-
-<A NAME="separator"><!-- --></A><H3>
-separator</H3>
-<PRE>
-public final byte <B>separator</B></PRE>
-<DL>
-<DD>A separator character between fields (stem, lemma, form). The character
- must be within byte range (FSA uses bytes internally).
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="encoding"><!-- --></A><H3>
-encoding</H3>
-<PRE>
-public final java.lang.String <B>encoding</B></PRE>
-<DL>
-<DD>Encoding used for converting bytes to characters and vice versa.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="usesPrefixes"><!-- --></A><H3>
-usesPrefixes</H3>
-<PRE>
-public final boolean <B>usesPrefixes</B></PRE>
-<DL>
-<DD>True if the dictionary was compiled with prefix compression.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="usesInfixes"><!-- --></A><H3>
-usesInfixes</H3>
-<PRE>
-public final boolean <B>usesInfixes</B></PRE>
-<DL>
-<DD>True if the dictionary was compiled with infix compression.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="metadata"><!-- --></A><H3>
-metadata</H3>
-<PRE>
-public final java.util.Map&lt;java.lang.String,java.lang.String&gt; <B>metadata</B></PRE>
-<DL>
-<DD>Other meta data not included above.
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="DictionaryMetadata(char, java.lang.String, boolean, boolean, java.util.Map)"><!-- --></A><H3>
-DictionaryMetadata</H3>
-<PRE>
-public <B>DictionaryMetadata</B>(char&nbsp;separator,
- java.lang.String&nbsp;encoding,
- boolean&nbsp;usesPrefixes,
- boolean&nbsp;usesInfixes,
- java.util.Map&lt;java.lang.String,java.lang.String&gt;&nbsp;metadata)</PRE>
-<DL>
-<DD>Creates an immutable instance of <A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><CODE>DictionaryMetadata</CODE></A>.
-<P>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/DictionaryMetadata.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="DictionaryMetadata.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/stemming/IStemmer.html b/doc/api/morfologik/stemming/IStemmer.html
deleted file mode 100644
index 8d901f9..0000000
--- a/doc/api/morfologik/stemming/IStemmer.html
+++ /dev/null
@@ -1,220 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-IStemmer
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="IStemmer";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/IStemmer.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="IStemmer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.stemming</FONT>
-<BR>
-Interface IStemmer</H2>
-<DL>
-<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming">DictionaryLookup</A>, <A HREF="../../morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming">PolishStemmer</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public interface <B>IStemmer</B></DL>
-</PRE>
-
-<P>
-A generic &quot;stemmer&quot; interface in Morfologik.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.List&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/IStemmer.html#lookup(java.lang.CharSequence)">lookup</A></B>(java.lang.CharSequence&nbsp;word)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a list of <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries for a given word.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="lookup(java.lang.CharSequence)"><!-- --></A><H3>
-lookup</H3>
-<PRE>
-java.util.List&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt; <B>lookup</B>(java.lang.CharSequence&nbsp;word)</PRE>
-<DL>
-<DD>Returns a list of <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries for a given word. The returned
- list is never <code>null</code>. Depending on the stemmer's
- implementation the <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> may carry the stem and additional
- information (tag) or just the stem.
- <p>
- The returned list and any object it contains are not usable after a
- subsequent call to this method. Any data that should be stored in between
- must be copied by the caller.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/IStemmer.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="IStemmer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/stemming/PolishStemmer.html b/doc/api/morfologik/stemming/PolishStemmer.html
deleted file mode 100644
index ccaa8f4..0000000
--- a/doc/api/morfologik/stemming/PolishStemmer.html
+++ /dev/null
@@ -1,302 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-PolishStemmer
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="PolishStemmer";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/PolishStemmer.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="PolishStemmer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.stemming</FONT>
-<BR>
-Class PolishStemmer</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.stemming.PolishStemmer</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Iterable&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;, <A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>PolishStemmer</B><DT>extends java.lang.Object<DT>implements <A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A>, java.lang.Iterable&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</DL>
-</PRE>
-
-<P>
-A dictionary-based stemmer for the Polish language. This stemmer requires an
- FSA-compiled dictionary to be present in classpath resources.
-
- <b>Objects of this class are not thread safe.</b>
-<P>
-
-<P>
-<DL>
-<DT><B>See Also:</B><DD><A HREF="../../morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming"><CODE>DictionaryLookup</CODE></A></DL>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/stemming/PolishStemmer.html#PolishStemmer()">PolishStemmer</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor is initialized with a built-in dictionary or fails with
- a runtime exception if the dictionary is not available.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.Iterator&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/PolishStemmer.html#iterator()">iterator</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterates over all dictionary forms stored in this stemmer.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.util.List&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/PolishStemmer.html#lookup(java.lang.CharSequence)">lookup</A></B>(java.lang.CharSequence&nbsp;word)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a list of <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries for a given word.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="PolishStemmer()"><!-- --></A><H3>
-PolishStemmer</H3>
-<PRE>
-public <B>PolishStemmer</B>()</PRE>
-<DL>
-<DD>This constructor is initialized with a built-in dictionary or fails with
- a runtime exception if the dictionary is not available.
-<P>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="lookup(java.lang.CharSequence)"><!-- --></A><H3>
-lookup</H3>
-<PRE>
-public java.util.List&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt; <B>lookup</B>(java.lang.CharSequence&nbsp;word)</PRE>
-<DL>
-<DD>Returns a list of <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries for a given word. The returned
- list is never <code>null</code>. Depending on the stemmer's
- implementation the <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> may carry the stem and additional
- information (tag) or just the stem.
- <p>
- The returned list and any object it contains are not usable after a
- subsequent call to this method. Any data that should be stored in between
- must be copied by the caller.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/stemming/IStemmer.html#lookup(java.lang.CharSequence)">lookup</A></CODE> in interface <CODE><A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="iterator()"><!-- --></A><H3>
-iterator</H3>
-<PRE>
-public java.util.Iterator&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt; <B>iterator</B>()</PRE>
-<DL>
-<DD>Iterates over all dictionary forms stored in this stemmer.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE>iterator</CODE> in interface <CODE>java.lang.Iterable&lt;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A>&gt;</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/PolishStemmer.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="PolishStemmer.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/stemming/WordData.html b/doc/api/morfologik/stemming/WordData.html
deleted file mode 100644
index 42d956b..0000000
--- a/doc/api/morfologik/stemming/WordData.html
+++ /dev/null
@@ -1,447 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-WordData
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="WordData";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/WordData.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="WordData.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.stemming</FONT>
-<BR>
-Class WordData</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.stemming.WordData</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable</DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public final class <B>WordData</B><DT>extends java.lang.Object<DT>implements java.lang.Cloneable</DL>
-</PRE>
-
-<P>
-Stem and tag data associated with a given word.
-
- <p>
- <b>Important notes:</b>
- <ul>
- <li>Objects of this class are <i>volatile</i> (their content changes on
- subsequent calls to <A HREF="../../morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming"><CODE>DictionaryLookup</CODE></A> class. If you need a copy of the
- stem or tag data for a given word, you have to create a custom buffer
- yourself and copy the associated data, perform <A HREF="../../morfologik/stemming/WordData.html#clone()"><CODE>clone()</CODE></A> or create
- strings (they are immutable) using <A HREF="../../morfologik/stemming/WordData.html#getStem()"><CODE>getStem()</CODE></A> and then
- <CODE>CharSequence.toString()</CODE>.</li>
- <li>Objects of this class must not be used in any Java collections. In fact
- both equals and hashCode methods are overridden and throw exceptions to
- prevent accidental damage.</li>
- </ul>
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/WordData.html#clone()">clone</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Declare a covariant of <CODE>Object.clone()</CODE> that returns a deep copy of
- this object.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/WordData.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;obj)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.CharSequence</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/WordData.html#getStem()">getStem</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.nio.ByteBuffer</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/WordData.html#getStemBytes(java.nio.ByteBuffer)">getStemBytes</A></B>(java.nio.ByteBuffer&nbsp;target)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy the stem's binary data (no charset decoding) to a custom byte
- buffer.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.CharSequence</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/WordData.html#getTag()">getTag</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.nio.ByteBuffer</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/WordData.html#getTagBytes(java.nio.ByteBuffer)">getTagBytes</A></B>(java.nio.ByteBuffer&nbsp;target)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy the tag's binary data (no charset decoding) to a custom byte buffer.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.CharSequence</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/WordData.html#getWord()">getWord</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.nio.ByteBuffer</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/WordData.html#getWordBytes(java.nio.ByteBuffer)">getWordBytes</A></B>(java.nio.ByteBuffer&nbsp;target)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy the inflected word's binary data (no charset decoding) to a custom
- byte buffer.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/stemming/WordData.html#hashCode()">hashCode</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>finalize, getClass, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="getStemBytes(java.nio.ByteBuffer)"><!-- --></A><H3>
-getStemBytes</H3>
-<PRE>
-public java.nio.ByteBuffer <B>getStemBytes</B>(java.nio.ByteBuffer&nbsp;target)</PRE>
-<DL>
-<DD>Copy the stem's binary data (no charset decoding) to a custom byte
- buffer. If the buffer is null or not large enough to hold the result, a
- new buffer is allocated.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>target</CODE> - Target byte buffer to copy the stem buffer to or
- <code>null</code> if a new buffer should be allocated.
-<DT><B>Returns:</B><DD>Returns <code>target</code> or the new reallocated buffer.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getTagBytes(java.nio.ByteBuffer)"><!-- --></A><H3>
-getTagBytes</H3>
-<PRE>
-public java.nio.ByteBuffer <B>getTagBytes</B>(java.nio.ByteBuffer&nbsp;target)</PRE>
-<DL>
-<DD>Copy the tag's binary data (no charset decoding) to a custom byte buffer.
- If the buffer is null or not large enough to hold the result, a new
- buffer is allocated.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>target</CODE> - Target byte buffer to copy the tag buffer to or
- <code>null</code> if a new buffer should be allocated.
-<DT><B>Returns:</B><DD>Returns <code>target</code> or the new reallocated buffer.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getWordBytes(java.nio.ByteBuffer)"><!-- --></A><H3>
-getWordBytes</H3>
-<PRE>
-public java.nio.ByteBuffer <B>getWordBytes</B>(java.nio.ByteBuffer&nbsp;target)</PRE>
-<DL>
-<DD>Copy the inflected word's binary data (no charset decoding) to a custom
- byte buffer. If the buffer is null or not large enough to hold the
- result, a new buffer is allocated.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>target</CODE> - Target byte buffer to copy the word buffer to or
- <code>null</code> if a new buffer should be allocated.
-<DT><B>Returns:</B><DD>Returns <code>target</code> or the new reallocated buffer.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getTag()"><!-- --></A><H3>
-getTag</H3>
-<PRE>
-public java.lang.CharSequence <B>getTag</B>()</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Return tag data decoded to a character sequence or
- <code>null</code> if no associated tag data exists.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getStem()"><!-- --></A><H3>
-getStem</H3>
-<PRE>
-public java.lang.CharSequence <B>getStem</B>()</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Return stem data decoded to a character sequence or
- <code>null</code> if no associated stem data exists.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getWord()"><!-- --></A><H3>
-getWord</H3>
-<PRE>
-public java.lang.CharSequence <B>getWord</B>()</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>Return inflected word form data. Usually the parameter passed to
- <A HREF="../../morfologik/stemming/DictionaryLookup.html#lookup(java.lang.CharSequence)"><CODE>DictionaryLookup.lookup(CharSequence)</CODE></A>.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
-equals</H3>
-<PRE>
-public boolean <B>equals</B>(java.lang.Object&nbsp;obj)</PRE>
-<DL>
-<DD><DL>
-<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="hashCode()"><!-- --></A><H3>
-hashCode</H3>
-<PRE>
-public int <B>hashCode</B>()</PRE>
-<DL>
-<DD><DL>
-<DT><B>Overrides:</B><DD><CODE>hashCode</CODE> in class <CODE>java.lang.Object</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="clone()"><!-- --></A><H3>
-clone</H3>
-<PRE>
-protected <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A> <B>clone</B>()</PRE>
-<DL>
-<DD>Declare a covariant of <CODE>Object.clone()</CODE> that returns a deep copy of
- this object. The content of all internal buffers is copied.
-<P>
-<DD><DL>
-<DT><B>Overrides:</B><DD><CODE>clone</CODE> in class <CODE>java.lang.Object</CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/WordData.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="WordData.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/stemming/package-frame.html b/doc/api/morfologik/stemming/package-frame.html
deleted file mode 100644
index b8d12fb..0000000
--- a/doc/api/morfologik/stemming/package-frame.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.stemming
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameTitleFont">
-<A HREF="../../morfologik/stemming/package-summary.html" target="classFrame">morfologik.stemming</A></FONT>
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Interfaces</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="IStemmer.html" title="interface in morfologik.stemming" target="classFrame"><I>IStemmer</I></A></FONT></TD>
-</TR>
-</TABLE>
-
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Classes</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="Dictionary.html" title="class in morfologik.stemming" target="classFrame">Dictionary</A>
-<BR>
-<A HREF="DictionaryIterator.html" title="class in morfologik.stemming" target="classFrame">DictionaryIterator</A>
-<BR>
-<A HREF="DictionaryLookup.html" title="class in morfologik.stemming" target="classFrame">DictionaryLookup</A>
-<BR>
-<A HREF="DictionaryMetadata.html" title="class in morfologik.stemming" target="classFrame">DictionaryMetadata</A>
-<BR>
-<A HREF="PolishStemmer.html" title="class in morfologik.stemming" target="classFrame">PolishStemmer</A>
-<BR>
-<A HREF="WordData.html" title="class in morfologik.stemming" target="classFrame">WordData</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/stemming/package-summary.html b/doc/api/morfologik/stemming/package-summary.html
deleted file mode 100644
index d439020..0000000
--- a/doc/api/morfologik/stemming/package-summary.html
+++ /dev/null
@@ -1,190 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.stemming
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="morfologik.stemming";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<H2>
-Package morfologik.stemming
-</H2>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Interface Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A></B></TD>
-<TD>A generic &quot;stemmer&quot; interface in Morfologik.</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming">Dictionary</A></B></TD>
-<TD>A dictionary combines <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A> automaton and metadata describing the
- internals of dictionary entries' coding (<A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><CODE>DictionaryMetadata</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming">DictionaryIterator</A></B></TD>
-<TD>An iterator over <A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><CODE>WordData</CODE></A> entries of a <A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><CODE>Dictionary</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming">DictionaryLookup</A></B></TD>
-<TD>This class implements a dictionary lookup over an FSA dictionary.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming">DictionaryMetadata</A></B></TD>
-<TD>Description of attributes, their types and default values.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming">PolishStemmer</A></B></TD>
-<TD>A dictionary-based stemmer for the Polish language.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming">WordData</A></B></TD>
-<TD>Stem and tag data associated with a given word.</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-<DL>
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/stemming/package-tree.html b/doc/api/morfologik/stemming/package-tree.html
deleted file mode 100644
index 73b3e3d..0000000
--- a/doc/api/morfologik/stemming/package-tree.html
+++ /dev/null
@@ -1,160 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.stemming Class Hierarchy
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="morfologik.stemming Class Hierarchy";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/package-tree.html"><B>NEXT</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-Hierarchy For Package morfologik.stemming
-</H2>
-</CENTER>
-<DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../overview-tree.html">All Packages</A></DL>
-<HR>
-<H2>
-Class Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">morfologik.stemming.<A HREF="../../morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><B>Dictionary</B></A><LI TYPE="circle">morfologik.stemming.<A HREF="../../morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming"><B>DictionaryIterator</B></A> (implements java.util.Iterator&lt;E&gt;)
-<LI TYPE="circle">morfologik.stemming.<A HREF="../../morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming"><B>DictionaryLookup</B></A> (implements morfologik.stemming.<A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A>, java.lang.Iterable&lt;T&gt;)
-<LI TYPE="circle">morfologik.stemming.<A HREF="../../morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><B>DictionaryMetadata</B></A><LI TYPE="circle">morfologik.stemming.<A HREF="../../morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming"><B>PolishStemmer</B></A> (implements morfologik.stemming.<A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A>, java.lang.Iterable&lt;T&gt;)
-<LI TYPE="circle">morfologik.stemming.<A HREF="../../morfologik/stemming/WordData.html" title="class in morfologik.stemming"><B>WordData</B></A> (implements java.lang.Cloneable)
-</UL>
-</UL>
-<H2>
-Interface Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">morfologik.stemming.<A HREF="../../morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming"><B>IStemmer</B></A></UL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/fsa/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/package-tree.html"><B>NEXT</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/stemming/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/FSABuildTool.Format.html b/doc/api/morfologik/tools/FSABuildTool.Format.html
deleted file mode 100644
index af79179..0000000
--- a/doc/api/morfologik/tools/FSABuildTool.Format.html
+++ /dev/null
@@ -1,346 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-FSABuildTool.Format
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSABuildTool.Format";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/FSABuildTool.html" title="class in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/FSADumpTool.html" title="class in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/FSABuildTool.Format.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSABuildTool.Format.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.tools</FONT>
-<BR>
-Enum FSABuildTool.Format</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by ">java.lang.Enum&lt;<A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A>&gt;
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.tools.FSABuildTool.Format</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Comparable&lt;<A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A>&gt;</DD>
-</DL>
-<DL>
-<DT><B>Enclosing class:</B><DD><A HREF="../../morfologik/tools/FSABuildTool.html" title="class in morfologik.tools">FSABuildTool</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public static enum <B>FSABuildTool.Format</B><DT>extends java.lang.Enum&lt;<A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A>&gt;</DL>
-</PRE>
-
-<P>
-The serialization format to use for the binary output.
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-
-<A NAME="enum_constant_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Enum Constant Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.Format.html#CFSA2">CFSA2</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.Format.html#FSA5">FSA5</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.Format.html#getSerializer()">getSerializer</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.Format.html#valueOf(java.lang.String)">valueOf</A></B>(java.lang.String&nbsp;name)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the enum constant of this type with the specified name.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;<A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A>[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.Format.html#values()">values</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array containing the constants of this enum type, in
-the order they are declared.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Enum"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Enum</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ ENUM CONSTANT DETAIL =========== -->
-
-<A NAME="enum_constant_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Enum Constant Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSA5"><!-- --></A><H3>
-FSA5</H3>
-<PRE>
-public static final <A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A> <B>FSA5</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-<HR>
-
-<A NAME="CFSA2"><!-- --></A><H3>
-CFSA2</H3>
-<PRE>
-public static final <A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A> <B>CFSA2</B></PRE>
-<DL>
-<DL>
-</DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="values()"><!-- --></A><H3>
-values</H3>
-<PRE>
-public static <A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A>[] <B>values</B>()</PRE>
-<DL>
-<DD>Returns an array containing the constants of this enum type, in
-the order they are declared. This method may be used to iterate
-over the constants as follows:
-<pre>
-for (FSABuildTool.Format c : FSABuildTool.Format.values())
-&nbsp; System.out.println(c);
-</pre>
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>an array containing the constants of this enum type, in
-the order they are declared</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="valueOf(java.lang.String)"><!-- --></A><H3>
-valueOf</H3>
-<PRE>
-public static <A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A> <B>valueOf</B>(java.lang.String&nbsp;name)</PRE>
-<DL>
-<DD>Returns the enum constant of this type with the specified name.
-The string must match <I>exactly</I> an identifier used to declare an
-enum constant in this type. (Extraneous whitespace characters are
-not permitted.)
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the enum constant to be returned.
-<DT><B>Returns:</B><DD>the enum constant with the specified name
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.IllegalArgumentException</CODE> - if this enum type has no constant
-with the specified name
-<DD><CODE>java.lang.NullPointerException</CODE> - if the argument is null</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getSerializer()"><!-- --></A><H3>
-getSerializer</H3>
-<PRE>
-public <A HREF="../../morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A> <B>getSerializer</B>()</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/FSABuildTool.html" title="class in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/FSADumpTool.html" title="class in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/FSABuildTool.Format.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSABuildTool.Format.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#enum_constant_summary">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#enum_constant_detail">ENUM CONSTANTS</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/FSABuildTool.html b/doc/api/morfologik/tools/FSABuildTool.html
deleted file mode 100644
index 74a0465..0000000
--- a/doc/api/morfologik/tools/FSABuildTool.html
+++ /dev/null
@@ -1,522 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-FSABuildTool
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSABuildTool";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/FSABuildTool.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSABuildTool.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.tools</FONT>
-<BR>
-Class FSABuildTool</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.tools.FSABuildTool</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>FSABuildTool</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Convert from plain text input to a serialized FSA in any of the
- available <A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools"><CODE>FSABuildTool.Format</CODE></A>s.
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-
-<A NAME="nested_class_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Nested Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;class</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The serialization format to use for the binary output.</TD>
-</TR>
-</TABLE>
-&nbsp;<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;org.apache.commons.cli.Options</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#options">options</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command line options.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#FSABuildTool()">FSABuildTool</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#checkSingleByte(java.lang.String)">checkSingleByte</A></B>(java.lang.String&nbsp;chr)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check if the argument is a single byte after conversion using platform-default
- encoding.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#dumpLine(byte[], int)">dumpLine</A></B>(byte[]&nbsp;line,
- int&nbsp;length)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dump input line, byte-by-byte.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#go(org.apache.commons.cli.CommandLine)">go</A></B>(org.apache.commons.cli.CommandLine&nbsp;line)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command line entry point after parsing arguments.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#go(java.lang.String[])">go</A></B>(java.lang.String[]&nbsp;args)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initializes application context.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#initializeOptions(org.apache.commons.cli.Options)">initializeOptions</A></B>(org.apache.commons.cli.Options&nbsp;options)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Override and initialize options.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#isAvailable()">isAvailable</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is the tool available?</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#main(java.lang.String[])">main</A></B>(java.lang.String[]&nbsp;args)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command line entry point.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#printError(java.lang.String)">printError</A></B>(java.lang.String&nbsp;msg)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print an error without an exception.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#printError(java.lang.String, java.lang.Throwable)">printError</A></B>(java.lang.String&nbsp;msg,
- java.lang.Throwable&nbsp;t)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print an error and an associated exception.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSABuildTool.html#printUsage()">printUsage</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prints usage (options).</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="options"><!-- --></A><H3>
-options</H3>
-<PRE>
-protected final org.apache.commons.cli.Options <B>options</B></PRE>
-<DL>
-<DD>Command line options.
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSABuildTool()"><!-- --></A><H3>
-FSABuildTool</H3>
-<PRE>
-public <B>FSABuildTool</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="go(org.apache.commons.cli.CommandLine)"><!-- --></A><H3>
-go</H3>
-<PRE>
-protected void <B>go</B>(org.apache.commons.cli.CommandLine&nbsp;line)
- throws java.lang.Exception</PRE>
-<DL>
-<DD>Command line entry point after parsing arguments.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.Exception</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="dumpLine(byte[], int)"><!-- --></A><H3>
-dumpLine</H3>
-<PRE>
-protected java.lang.String <B>dumpLine</B>(byte[]&nbsp;line,
- int&nbsp;length)</PRE>
-<DL>
-<DD>Dump input line, byte-by-byte.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="checkSingleByte(java.lang.String)"><!-- --></A><H3>
-checkSingleByte</H3>
-<PRE>
-public static void <B>checkSingleByte</B>(java.lang.String&nbsp;chr)</PRE>
-<DL>
-<DD>Check if the argument is a single byte after conversion using platform-default
- encoding.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="printUsage()"><!-- --></A><H3>
-printUsage</H3>
-<PRE>
-protected void <B>printUsage</B>()</PRE>
-<DL>
-<DD>Prints usage (options).
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="initializeOptions(org.apache.commons.cli.Options)"><!-- --></A><H3>
-initializeOptions</H3>
-<PRE>
-protected void <B>initializeOptions</B>(org.apache.commons.cli.Options&nbsp;options)</PRE>
-<DL>
-<DD>Override and initialize options.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="main(java.lang.String[])"><!-- --></A><H3>
-main</H3>
-<PRE>
-public static void <B>main</B>(java.lang.String[]&nbsp;args)
- throws java.lang.Exception</PRE>
-<DL>
-<DD>Command line entry point.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.Exception</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="go(java.lang.String[])"><!-- --></A><H3>
-go</H3>
-<PRE>
-protected final void <B>go</B>(java.lang.String[]&nbsp;args)</PRE>
-<DL>
-<DD>Initializes application context.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="printError(java.lang.String, java.lang.Throwable)"><!-- --></A><H3>
-printError</H3>
-<PRE>
-protected void <B>printError</B>(java.lang.String&nbsp;msg,
- java.lang.Throwable&nbsp;t)</PRE>
-<DL>
-<DD>Print an error and an associated exception.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="printError(java.lang.String)"><!-- --></A><H3>
-printError</H3>
-<PRE>
-protected void <B>printError</B>(java.lang.String&nbsp;msg)</PRE>
-<DL>
-<DD>Print an error without an exception.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isAvailable()"><!-- --></A><H3>
-isAvailable</H3>
-<PRE>
-protected boolean <B>isAvailable</B>()</PRE>
-<DL>
-<DD>Is the tool available? <code>true</code> by default.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/FSABuildTool.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSABuildTool.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/FSADumpTool.html b/doc/api/morfologik/tools/FSADumpTool.html
deleted file mode 100644
index e7b9098..0000000
--- a/doc/api/morfologik/tools/FSADumpTool.html
+++ /dev/null
@@ -1,457 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-FSADumpTool
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FSADumpTool";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/FSADumpTool.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSADumpTool.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.tools</FONT>
-<BR>
-Class FSADumpTool</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.tools.FSADumpTool</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>FSADumpTool</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-This utility will dump the information and contents of a given <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A>
- dictionary. It can dump dictionaries in the raw form (as fed to the
- <code>fsa_build</code> program) or decoding compressed stem forms.
-<P>
-
-<P>
-<HR>
-
-<P>
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;org.apache.commons.cli.Options</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSADumpTool.html#options">options</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command line options.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/tools/FSADumpTool.html#FSADumpTool()">FSADumpTool</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSADumpTool.html#go(org.apache.commons.cli.CommandLine)">go</A></B>(org.apache.commons.cli.CommandLine&nbsp;line)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command line entry point after parsing arguments.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSADumpTool.html#go(java.lang.String[])">go</A></B>(java.lang.String[]&nbsp;args)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initializes application context.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSADumpTool.html#initializeOptions(org.apache.commons.cli.Options)">initializeOptions</A></B>(org.apache.commons.cli.Options&nbsp;options)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command line options for the tool.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSADumpTool.html#isAvailable()">isAvailable</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is the tool available?</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSADumpTool.html#main(java.lang.String[])">main</A></B>(java.lang.String[]&nbsp;args)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command line entry point.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSADumpTool.html#printError(java.lang.String)">printError</A></B>(java.lang.String&nbsp;msg)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print an error without an exception.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSADumpTool.html#printError(java.lang.String, java.lang.Throwable)">printError</A></B>(java.lang.String&nbsp;msg,
- java.lang.Throwable&nbsp;t)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print an error and an associated exception.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected &nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/FSADumpTool.html#printUsage()">printUsage</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prints usage (options).</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="options"><!-- --></A><H3>
-options</H3>
-<PRE>
-protected final org.apache.commons.cli.Options <B>options</B></PRE>
-<DL>
-<DD>Command line options.
-<P>
-<DL>
-</DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="FSADumpTool()"><!-- --></A><H3>
-FSADumpTool</H3>
-<PRE>
-public <B>FSADumpTool</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="go(org.apache.commons.cli.CommandLine)"><!-- --></A><H3>
-go</H3>
-<PRE>
-protected void <B>go</B>(org.apache.commons.cli.CommandLine&nbsp;line)
- throws java.lang.Exception</PRE>
-<DL>
-<DD>Command line entry point after parsing arguments.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.Exception</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="initializeOptions(org.apache.commons.cli.Options)"><!-- --></A><H3>
-initializeOptions</H3>
-<PRE>
-protected void <B>initializeOptions</B>(org.apache.commons.cli.Options&nbsp;options)</PRE>
-<DL>
-<DD>Command line options for the tool.
-<P>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="main(java.lang.String[])"><!-- --></A><H3>
-main</H3>
-<PRE>
-public static void <B>main</B>(java.lang.String[]&nbsp;args)
- throws java.lang.Exception</PRE>
-<DL>
-<DD>Command line entry point.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.Exception</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="go(java.lang.String[])"><!-- --></A><H3>
-go</H3>
-<PRE>
-protected final void <B>go</B>(java.lang.String[]&nbsp;args)</PRE>
-<DL>
-<DD>Initializes application context.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="printError(java.lang.String, java.lang.Throwable)"><!-- --></A><H3>
-printError</H3>
-<PRE>
-protected void <B>printError</B>(java.lang.String&nbsp;msg,
- java.lang.Throwable&nbsp;t)</PRE>
-<DL>
-<DD>Print an error and an associated exception.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="printError(java.lang.String)"><!-- --></A><H3>
-printError</H3>
-<PRE>
-protected void <B>printError</B>(java.lang.String&nbsp;msg)</PRE>
-<DL>
-<DD>Print an error without an exception.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="printUsage()"><!-- --></A><H3>
-printUsage</H3>
-<PRE>
-protected void <B>printUsage</B>()</PRE>
-<DL>
-<DD>Prints usage (options).
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isAvailable()"><!-- --></A><H3>
-isAvailable</H3>
-<PRE>
-protected boolean <B>isAvailable</B>()</PRE>
-<DL>
-<DD>Is the tool available? <code>true</code> by default.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/FSADumpTool.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FSADumpTool.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/IMessageLogger.html b/doc/api/morfologik/tools/IMessageLogger.html
deleted file mode 100644
index d84023a..0000000
--- a/doc/api/morfologik/tools/IMessageLogger.html
+++ /dev/null
@@ -1,272 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-IMessageLogger
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="IMessageLogger";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/FSADumpTool.html" title="class in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/IMessageLogger.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="IMessageLogger.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.tools</FONT>
-<BR>
-Interface IMessageLogger</H2>
-<DL>
-<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools">WriterMessageLogger</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public interface <B>IMessageLogger</B></DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/IMessageLogger.html#endPart()">endPart</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/IMessageLogger.html#log(java.lang.String)">log</A></B>(java.lang.String&nbsp;msg)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log progress to the console.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/IMessageLogger.html#log(java.lang.String, java.lang.Object)">log</A></B>(java.lang.String&nbsp;header,
- java.lang.Object&nbsp;v)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log a two-part message.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/IMessageLogger.html#startPart(java.lang.String)">startPart</A></B>(java.lang.String&nbsp;header)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log message header and save current time.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="log(java.lang.String)"><!-- --></A><H3>
-log</H3>
-<PRE>
-void <B>log</B>(java.lang.String&nbsp;msg)</PRE>
-<DL>
-<DD>Log progress to the console.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="startPart(java.lang.String)"><!-- --></A><H3>
-startPart</H3>
-<PRE>
-void <B>startPart</B>(java.lang.String&nbsp;header)</PRE>
-<DL>
-<DD>Log message header and save current time.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="endPart()"><!-- --></A><H3>
-endPart</H3>
-<PRE>
-void <B>endPart</B>()</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="log(java.lang.String, java.lang.Object)"><!-- --></A><H3>
-log</H3>
-<PRE>
-void <B>log</B>(java.lang.String&nbsp;header,
- java.lang.Object&nbsp;v)</PRE>
-<DL>
-<DD>Log a two-part message.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/FSADumpTool.html" title="class in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/IMessageLogger.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="IMessageLogger.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/InflectionFramesTool.html b/doc/api/morfologik/tools/InflectionFramesTool.html
deleted file mode 100644
index 6d3d792..0000000
--- a/doc/api/morfologik/tools/InflectionFramesTool.html
+++ /dev/null
@@ -1,279 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-InflectionFramesTool
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="InflectionFramesTool";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/Launcher.html" title="class in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/InflectionFramesTool.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="InflectionFramesTool.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.tools</FONT>
-<BR>
-Class InflectionFramesTool</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.tools.InflectionFramesTool</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public class <B>InflectionFramesTool</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Calculate inflection frames from the Polish dictionary.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/tools/InflectionFramesTool.html#InflectionFramesTool()">InflectionFramesTool</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/InflectionFramesTool.html#inflectionFrames()">inflectionFrames</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/InflectionFramesTool.html#main(java.lang.String[])">main</A></B>(java.lang.String[]&nbsp;args)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="InflectionFramesTool()"><!-- --></A><H3>
-InflectionFramesTool</H3>
-<PRE>
-public <B>InflectionFramesTool</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="main(java.lang.String[])"><!-- --></A><H3>
-main</H3>
-<PRE>
-public static void <B>main</B>(java.lang.String[]&nbsp;args)
- throws java.io.IOException</PRE>
-<DL>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="inflectionFrames()"><!-- --></A><H3>
-inflectionFrames</H3>
-<PRE>
-public void <B>inflectionFrames</B>()
- throws java.io.IOException</PRE>
-<DL>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/Launcher.html" title="class in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/InflectionFramesTool.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="InflectionFramesTool.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/Launcher.html b/doc/api/morfologik/tools/Launcher.html
deleted file mode 100644
index da29ad9..0000000
--- a/doc/api/morfologik/tools/Launcher.html
+++ /dev/null
@@ -1,259 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-Launcher
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Launcher";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/MorphEncoder.html" title="class in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/Launcher.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="Launcher.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.tools</FONT>
-<BR>
-Class Launcher</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.tools.Launcher</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>Launcher</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-A launcher for other command-line tools.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/tools/Launcher.html#Launcher()">Launcher</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/Launcher.html#main(java.lang.String[])">main</A></B>(java.lang.String[]&nbsp;args)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command line entry point.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="Launcher()"><!-- --></A><H3>
-Launcher</H3>
-<PRE>
-public <B>Launcher</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="main(java.lang.String[])"><!-- --></A><H3>
-main</H3>
-<PRE>
-public static void <B>main</B>(java.lang.String[]&nbsp;args)
- throws java.lang.Exception</PRE>
-<DL>
-<DD>Command line entry point.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.lang.Exception</CODE></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/MorphEncoder.html" title="class in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/Launcher.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="Launcher.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/MorphEncoder.html b/doc/api/morfologik/tools/MorphEncoder.html
deleted file mode 100644
index fc9fd18..0000000
--- a/doc/api/morfologik/tools/MorphEncoder.html
+++ /dev/null
@@ -1,584 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-MorphEncoder
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="MorphEncoder";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/Launcher.html" title="class in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/MorphEncoder.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="MorphEncoder.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.tools</FONT>
-<BR>
-Class MorphEncoder</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.tools.MorphEncoder</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>MorphEncoder</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-A class that converts tabular data to fsa morphological format. Three formats
- are supported:
- <ul>
- <li><b>standard</b>, see <A HREF="../../morfologik/tools/MorphEncoder.html#standardEncode(byte[], byte[], byte[])"><CODE>standardEncode(byte[], byte[], byte[])</CODE></A></li>
- <li><b>prefix</b>, see <A HREF="../../morfologik/tools/MorphEncoder.html#prefixEncode(byte[], byte[], byte[])"><CODE>prefixEncode(byte[], byte[], byte[])</CODE></A></li>
- <li><b>infix</b>, see <A HREF="../../morfologik/tools/MorphEncoder.html#infixEncode(byte[], byte[], byte[])"><CODE>infixEncode(byte[], byte[], byte[])</CODE></A></li>
- </ul>
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/tools/MorphEncoder.html#MorphEncoder()">MorphEncoder</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/tools/MorphEncoder.html#MorphEncoder(byte)">MorphEncoder</A></B>(byte&nbsp;annotationSeparator)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected static&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/MorphEncoder.html#asString(byte[], java.lang.String)">asString</A></B>(byte[]&nbsp;str,
- java.lang.String&nbsp;encoding)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Converts a byte array to a given encoding.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/MorphEncoder.html#commonPrefix(byte[], byte[])">commonPrefix</A></B>(byte[]&nbsp;s1,
- byte[]&nbsp;s2)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/MorphEncoder.html#infixEncode(byte[], byte[], byte[])">infixEncode</A></B>(byte[]&nbsp;wordForm,
- byte[]&nbsp;wordLemma,
- byte[]&nbsp;wordTag)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method converts wordform, wordLemma and the tag to the form:
-
- inflected_form + MLKending + tags
-
-
- where '+' is a separator, M is the position of characters to be deleted
- towards the beginning of the inflected form ("A" means from the
- beginning, "B" from the second character, "C" - from the third one, and
- so on), L is the number of characters to be deleted from the position
- specified by M ("A" means none, "B" means one, "C" - 2, etc.), K is a
- character that specifies how many characters should be deleted from the
- end of the inflected form to produce the lexeme by concatenating the
- stripped string with the ending ("A" means none, "B' - 1, "C" - 2, and so
- on).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/MorphEncoder.html#infixEncodeUTF8(java.lang.String, java.lang.String, java.lang.String)">infixEncodeUTF8</A></B>(java.lang.String&nbsp;wordForm,
- java.lang.String&nbsp;wordLemma,
- java.lang.String&nbsp;wordTag)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A UTF-8 variant of <A HREF="../../morfologik/tools/MorphEncoder.html#infixEncode(byte[], byte[], byte[])"><CODE>infixEncode(byte[], byte[], byte[])</CODE></A>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/MorphEncoder.html#prefixEncode(byte[], byte[], byte[])">prefixEncode</A></B>(byte[]&nbsp;wordForm,
- byte[]&nbsp;wordLemma,
- byte[]&nbsp;wordTag)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method converts wordform, wordLemma and the tag to the form:
-
-
-
- inflected_form + LKending + tags
-
-
- where '+' is a separator, L is the number of characters to be deleted
- from the beginning of the word ("A" means none, "B" means one, "C" - 2,
- etc.), K is a character that specifies how many characters should be
- deleted from the end of the inflected form to produce the lexeme by
- concatenating the stripped string with the ending ("A" means none,
- "B' - 1, "C" - 2, and so on).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/MorphEncoder.html#prefixEncodeUTF8(java.lang.String, java.lang.String, java.lang.String)">prefixEncodeUTF8</A></B>(java.lang.String&nbsp;wordForm,
- java.lang.String&nbsp;wordLemma,
- java.lang.String&nbsp;wordTag)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A UTF-8 variant of <A HREF="../../morfologik/tools/MorphEncoder.html#prefixEncode(byte[], byte[], byte[])"><CODE>prefixEncode(byte[], byte[], byte[])</CODE></A> This
- method converts wordform, wordLemma and the tag to the form:
-
- inflected_form + LKending + tags
-
-
- where '+' is a separator, L is the number of characters to be deleted
- from the beginning of the word ("A" means none, "B" means one, "C" - 2,
- etc.), K is a character that specifies how many characters should be
- deleted from the end of the inflected form to produce the lexeme by
- concatenating the stripped string with the ending ("A" means none,
- "B' - 1, "C" - 2, and so on).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/MorphEncoder.html#standardEncode(byte[], byte[], byte[])">standardEncode</A></B>(byte[]&nbsp;wordForm,
- byte[]&nbsp;wordLemma,
- byte[]&nbsp;wordTag)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method converts the wordForm, wordLemma and tag to the form:
-
-
- wordForm + Kending + tags
-
-
- where '+' is a separator, K is a character that specifies how many
- characters should be deleted from the end of the inflected form to
- produce the lexeme by concatenating the stripped string with the ending.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/MorphEncoder.html#standardEncodeUTF8(java.lang.String, java.lang.String, java.lang.String)">standardEncodeUTF8</A></B>(java.lang.String&nbsp;wordForm,
- java.lang.String&nbsp;wordLemma,
- java.lang.String&nbsp;wordTag)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A UTF-8 variant of <A HREF="../../morfologik/tools/MorphEncoder.html#standardEncode(byte[], byte[], byte[])"><CODE>standardEncode(byte[], byte[], byte[])</CODE></A> This
- method converts the wordForm, wordLemma and tag to the form:
-
-
- wordForm + Kending + tags
-
-
- where '+' is a separator, K is a character that specifies how many
- characters should be deleted from the end of the inflected form to
- produce the lexeme by concatenating the stripped string with the ending.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="MorphEncoder()"><!-- --></A><H3>
-MorphEncoder</H3>
-<PRE>
-public <B>MorphEncoder</B>()</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="MorphEncoder(byte)"><!-- --></A><H3>
-MorphEncoder</H3>
-<PRE>
-public <B>MorphEncoder</B>(byte&nbsp;annotationSeparator)</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="commonPrefix(byte[], byte[])"><!-- --></A><H3>
-commonPrefix</H3>
-<PRE>
-public static int <B>commonPrefix</B>(byte[]&nbsp;s1,
- byte[]&nbsp;s2)</PRE>
-<DL>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="standardEncode(byte[], byte[], byte[])"><!-- --></A><H3>
-standardEncode</H3>
-<PRE>
-public byte[] <B>standardEncode</B>(byte[]&nbsp;wordForm,
- byte[]&nbsp;wordLemma,
- byte[]&nbsp;wordTag)</PRE>
-<DL>
-<DD>This method converts the wordForm, wordLemma and tag to the form:
-
- <pre>
- wordForm + Kending + tags
- </pre>
-
- where '+' is a separator, K is a character that specifies how many
- characters should be deleted from the end of the inflected form to
- produce the lexeme by concatenating the stripped string with the ending.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="prefixEncode(byte[], byte[], byte[])"><!-- --></A><H3>
-prefixEncode</H3>
-<PRE>
-public byte[] <B>prefixEncode</B>(byte[]&nbsp;wordForm,
- byte[]&nbsp;wordLemma,
- byte[]&nbsp;wordTag)</PRE>
-<DL>
-<DD>This method converts wordform, wordLemma and the tag to the form:
- <p>
-
- <pre>
- inflected_form + LKending + tags
- </pre>
- <p>
- where '+' is a separator, L is the number of characters to be deleted
- from the beginning of the word ("A" means none, "B" means one, "C" - 2,
- etc.), K is a character that specifies how many characters should be
- deleted from the end of the inflected form to produce the lexeme by
- concatenating the stripped string with the ending ("A" means none,
- "B' - 1, "C" - 2, and so on).
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>wordForm</CODE> - - inflected word form<DD><CODE>wordLemma</CODE> - - canonical form<DD><CODE>wordTag</CODE> - - tag
-<DT><B>Returns:</B><DD>the encoded string</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="infixEncode(byte[], byte[], byte[])"><!-- --></A><H3>
-infixEncode</H3>
-<PRE>
-public byte[] <B>infixEncode</B>(byte[]&nbsp;wordForm,
- byte[]&nbsp;wordLemma,
- byte[]&nbsp;wordTag)</PRE>
-<DL>
-<DD>This method converts wordform, wordLemma and the tag to the form:
- <pre>
- inflected_form + MLKending + tags
- </pre>
- <p>
- where '+' is a separator, M is the position of characters to be deleted
- towards the beginning of the inflected form ("A" means from the
- beginning, "B" from the second character, "C" - from the third one, and
- so on), L is the number of characters to be deleted from the position
- specified by M ("A" means none, "B" means one, "C" - 2, etc.), K is a
- character that specifies how many characters should be deleted from the
- end of the inflected form to produce the lexeme by concatenating the
- stripped string with the ending ("A" means none, "B' - 1, "C" - 2, and so
- on).
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>wordForm</CODE> - - inflected word form<DD><CODE>wordLemma</CODE> - - canonical form<DD><CODE>wordTag</CODE> - - tag
-<DT><B>Returns:</B><DD>the encoded string</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="asString(byte[], java.lang.String)"><!-- --></A><H3>
-asString</H3>
-<PRE>
-protected static java.lang.String <B>asString</B>(byte[]&nbsp;str,
- java.lang.String&nbsp;encoding)</PRE>
-<DL>
-<DD>Converts a byte array to a given encoding.
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>str</CODE> - Byte-array to be converted.
-<DT><B>Returns:</B><DD>Java String. If decoding is unsuccessful, the string is empty.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="standardEncodeUTF8(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
-standardEncodeUTF8</H3>
-<PRE>
-public java.lang.String <B>standardEncodeUTF8</B>(java.lang.String&nbsp;wordForm,
- java.lang.String&nbsp;wordLemma,
- java.lang.String&nbsp;wordTag)
- throws java.io.UnsupportedEncodingException</PRE>
-<DL>
-<DD>A UTF-8 variant of <A HREF="../../morfologik/tools/MorphEncoder.html#standardEncode(byte[], byte[], byte[])"><CODE>standardEncode(byte[], byte[], byte[])</CODE></A> This
- method converts the wordForm, wordLemma and tag to the form:
-
- <pre>
- wordForm + Kending + tags
- </pre>
-
- where '+' is a separator, K is a character that specifies how many
- characters should be deleted from the end of the inflected form to
- produce the lexeme by concatenating the stripped string with the ending.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.UnsupportedEncodingException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="prefixEncodeUTF8(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
-prefixEncodeUTF8</H3>
-<PRE>
-public java.lang.String <B>prefixEncodeUTF8</B>(java.lang.String&nbsp;wordForm,
- java.lang.String&nbsp;wordLemma,
- java.lang.String&nbsp;wordTag)
- throws java.io.UnsupportedEncodingException</PRE>
-<DL>
-<DD>A UTF-8 variant of <A HREF="../../morfologik/tools/MorphEncoder.html#prefixEncode(byte[], byte[], byte[])"><CODE>prefixEncode(byte[], byte[], byte[])</CODE></A> This
- method converts wordform, wordLemma and the tag to the form:
- <pre>
- inflected_form + LKending + tags
- </pre>
- <p>
- where '+' is a separator, L is the number of characters to be deleted
- from the beginning of the word ("A" means none, "B" means one, "C" - 2,
- etc.), K is a character that specifies how many characters should be
- deleted from the end of the inflected form to produce the lexeme by
- concatenating the stripped string with the ending ("A" means none,
- "B' - 1, "C" - 2, and so on).
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>wordForm</CODE> - - inflected word form<DD><CODE>wordLemma</CODE> - - canonical form<DD><CODE>wordTag</CODE> - - tag
-<DT><B>Returns:</B><DD>the encoded string
-<DT><B>Throws:</B>
-<DD><CODE>java.io.UnsupportedEncodingException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="infixEncodeUTF8(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
-infixEncodeUTF8</H3>
-<PRE>
-public java.lang.String <B>infixEncodeUTF8</B>(java.lang.String&nbsp;wordForm,
- java.lang.String&nbsp;wordLemma,
- java.lang.String&nbsp;wordTag)
- throws java.io.UnsupportedEncodingException</PRE>
-<DL>
-<DD>A UTF-8 variant of <A HREF="../../morfologik/tools/MorphEncoder.html#infixEncode(byte[], byte[], byte[])"><CODE>infixEncode(byte[], byte[], byte[])</CODE></A>.
-
- This method converts wordform, wordLemma and the tag to the form:
- <pre>
- inflected_form + MLKending + tags
- </pre>
- <p>
- where '+' is a separator, M is the position of characters to be deleted
- towards the beginning of the inflected form ("A" means from the
- beginning, "B" from the second character, "C" - from the third one, and
- so on), L is the number of characters to be deleted from the position
- specified by M ("A" means none, "B" means one, "C" - 2, etc.), K is a
- character that specifies how many characters should be deleted from the
- end of the inflected form to produce the lexeme by concatenating the
- stripped string with the ending ("A" means none, "B' - 1, "C" - 2, and so
- on).
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>wordForm</CODE> - - inflected word form<DD><CODE>wordLemma</CODE> - - canonical form<DD><CODE>wordTag</CODE> - - tag
-<DT><B>Returns:</B><DD>the encoded string
-<DT><B>Throws:</B>
-<DD><CODE>java.io.UnsupportedEncodingException</CODE></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/Launcher.html" title="class in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/MorphEncoder.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="MorphEncoder.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/WriterMessageLogger.html b/doc/api/morfologik/tools/WriterMessageLogger.html
deleted file mode 100644
index 0cd0cf7..0000000
--- a/doc/api/morfologik/tools/WriterMessageLogger.html
+++ /dev/null
@@ -1,337 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-WriterMessageLogger
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="WriterMessageLogger";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/MorphEncoder.html" title="class in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/WriterMessageLogger.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="WriterMessageLogger.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.tools</FONT>
-<BR>
-Class WriterMessageLogger</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.tools.WriterMessageLogger</B>
-</PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A></DD>
-</DL>
-<HR>
-<DL>
-<DT><PRE>public class <B>WriterMessageLogger</B><DT>extends java.lang.Object<DT>implements <A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A></DL>
-</PRE>
-
-<P>
-A logger dumping info to <code>System.err</code>.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../morfologik/tools/WriterMessageLogger.html#WriterMessageLogger(java.io.PrintWriter)">WriterMessageLogger</A></B>(java.io.PrintWriter&nbsp;w)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/WriterMessageLogger.html#endPart()">endPart</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/WriterMessageLogger.html#log(java.lang.String)">log</A></B>(java.lang.String&nbsp;msg)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log progress to the console.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/WriterMessageLogger.html#log(java.lang.String, java.lang.Object)">log</A></B>(java.lang.String&nbsp;header,
- java.lang.Object&nbsp;v)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log a two-part message.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/tools/WriterMessageLogger.html#startPart(java.lang.String)">startPart</A></B>(java.lang.String&nbsp;header)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Log message header and save current time.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="WriterMessageLogger(java.io.PrintWriter)"><!-- --></A><H3>
-WriterMessageLogger</H3>
-<PRE>
-public <B>WriterMessageLogger</B>(java.io.PrintWriter&nbsp;w)</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="log(java.lang.String)"><!-- --></A><H3>
-log</H3>
-<PRE>
-public void <B>log</B>(java.lang.String&nbsp;msg)</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../morfologik/tools/IMessageLogger.html#log(java.lang.String)">IMessageLogger</A></CODE></B></DD>
-<DD>Log progress to the console.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/tools/IMessageLogger.html#log(java.lang.String)">log</A></CODE> in interface <CODE><A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="log(java.lang.String, java.lang.Object)"><!-- --></A><H3>
-log</H3>
-<PRE>
-public void <B>log</B>(java.lang.String&nbsp;header,
- java.lang.Object&nbsp;v)</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../morfologik/tools/IMessageLogger.html#log(java.lang.String, java.lang.Object)">IMessageLogger</A></CODE></B></DD>
-<DD>Log a two-part message.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/tools/IMessageLogger.html#log(java.lang.String, java.lang.Object)">log</A></CODE> in interface <CODE><A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="startPart(java.lang.String)"><!-- --></A><H3>
-startPart</H3>
-<PRE>
-public void <B>startPart</B>(java.lang.String&nbsp;header)</PRE>
-<DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../morfologik/tools/IMessageLogger.html#startPart(java.lang.String)">IMessageLogger</A></CODE></B></DD>
-<DD>Log message header and save current time.
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/tools/IMessageLogger.html#startPart(java.lang.String)">startPart</A></CODE> in interface <CODE><A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="endPart()"><!-- --></A><H3>
-endPart</H3>
-<PRE>
-public void <B>endPart</B>()</PRE>
-<DL>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../morfologik/tools/IMessageLogger.html#endPart()">endPart</A></CODE> in interface <CODE><A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/MorphEncoder.html" title="class in morfologik.tools"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/WriterMessageLogger.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="WriterMessageLogger.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/package-frame.html b/doc/api/morfologik/tools/package-frame.html
deleted file mode 100644
index 1648f37..0000000
--- a/doc/api/morfologik/tools/package-frame.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.tools
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameTitleFont">
-<A HREF="../../morfologik/tools/package-summary.html" target="classFrame">morfologik.tools</A></FONT>
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Interfaces</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="IMessageLogger.html" title="interface in morfologik.tools" target="classFrame"><I>IMessageLogger</I></A></FONT></TD>
-</TR>
-</TABLE>
-
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Classes</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="FSABuildTool.html" title="class in morfologik.tools" target="classFrame">FSABuildTool</A>
-<BR>
-<A HREF="FSADumpTool.html" title="class in morfologik.tools" target="classFrame">FSADumpTool</A>
-<BR>
-<A HREF="InflectionFramesTool.html" title="class in morfologik.tools" target="classFrame">InflectionFramesTool</A>
-<BR>
-<A HREF="Launcher.html" title="class in morfologik.tools" target="classFrame">Launcher</A>
-<BR>
-<A HREF="MorphEncoder.html" title="class in morfologik.tools" target="classFrame">MorphEncoder</A>
-<BR>
-<A HREF="WriterMessageLogger.html" title="class in morfologik.tools" target="classFrame">WriterMessageLogger</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Enums</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="FSABuildTool.Format.html" title="enum in morfologik.tools" target="classFrame">FSABuildTool.Format</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/package-summary.html b/doc/api/morfologik/tools/package-summary.html
deleted file mode 100644
index f926b20..0000000
--- a/doc/api/morfologik/tools/package-summary.html
+++ /dev/null
@@ -1,205 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.tools
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="morfologik.tools";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<H2>
-Package morfologik.tools
-</H2>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Interface Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/tools/FSABuildTool.html" title="class in morfologik.tools">FSABuildTool</A></B></TD>
-<TD>Convert from plain text input to a serialized FSA in any of the
- available <A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools"><CODE>FSABuildTool.Format</CODE></A>s.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/tools/FSADumpTool.html" title="class in morfologik.tools">FSADumpTool</A></B></TD>
-<TD>This utility will dump the information and contents of a given <A HREF="../../morfologik/fsa/FSA.html" title="class in morfologik.fsa"><CODE>FSA</CODE></A>
- dictionary.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools">InflectionFramesTool</A></B></TD>
-<TD>Calculate inflection frames from the Polish dictionary.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/tools/Launcher.html" title="class in morfologik.tools">Launcher</A></B></TD>
-<TD>A launcher for other command-line tools.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/tools/MorphEncoder.html" title="class in morfologik.tools">MorphEncoder</A></B></TD>
-<TD>A class that converts tabular data to fsa morphological format.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools">WriterMessageLogger</A></B></TD>
-<TD>A logger dumping info to <code>System.err</code>.</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Enum Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools">FSABuildTool.Format</A></B></TD>
-<TD>The serialization format to use for the binary output.</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-<DL>
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/tools/package-tree.html b/doc/api/morfologik/tools/package-tree.html
deleted file mode 100644
index d4395e1..0000000
--- a/doc/api/morfologik/tools/package-tree.html
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.tools Class Hierarchy
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="morfologik.tools Class Hierarchy";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-Hierarchy For Package morfologik.tools
-</H2>
-</CENTER>
-<DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../overview-tree.html">All Packages</A></DL>
-<HR>
-<H2>
-Class Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">morfologik.tools.<A HREF="../../morfologik/tools/FSABuildTool.html" title="class in morfologik.tools"><B>FSABuildTool</B></A><LI TYPE="circle">morfologik.tools.<A HREF="../../morfologik/tools/FSADumpTool.html" title="class in morfologik.tools"><B>FSADumpTool</B></A><LI TYPE="circle">morfologik.tools.<A HREF="../../morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools"><B>InflectionFramesTool</B></A><LI TYPE="circle">morfologik.tools.<A HREF="../../morfologik/tools/Launcher.html" title="class in morfologik.tools"><B>Launcher</B></A><LI TYPE="circle">morfologik.tools.<A HREF="../../morfologik/tools/MorphEncoder.html" title="class in morfologik.tools"><B>MorphEncoder</B></A><LI TYPE="circle">morfologik.tools.<A HREF="../../morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools"><B>WriterMessageLogger</B></A> (implements morfologik.tools.<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>)
-</UL>
-</UL>
-<H2>
-Interface Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">morfologik.tools.<A HREF="../../morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools"><B>IMessageLogger</B></A></UL>
-<H2>
-Enum Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
-<UL>
-<LI TYPE="circle">morfologik.tools.<A HREF="../../morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools"><B>FSABuildTool.Format</B></A></UL>
-</UL>
-</UL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/stemming/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/tools/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/util/Arrays.html b/doc/api/morfologik/util/Arrays.html
deleted file mode 100644
index 9add801..0000000
--- a/doc/api/morfologik/util/Arrays.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-Arrays
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Arrays";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../morfologik/util/BufferUtils.html" title="class in morfologik.util"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/Arrays.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="Arrays.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.util</FONT>
-<BR>
-Class Arrays</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.util.Arrays</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>Arrays</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Compatibility layer for JVM 1.5.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/Arrays.html#equals(boolean[], int, boolean[], int, int)">equals</A></B>(boolean[]&nbsp;a1,
- int&nbsp;a1s,
- boolean[]&nbsp;a2,
- int&nbsp;a2s,
- int&nbsp;length)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare two arrays for equality.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/Arrays.html#equals(byte[], int, byte[], int, int)">equals</A></B>(byte[]&nbsp;a1,
- int&nbsp;a1s,
- byte[]&nbsp;a2,
- int&nbsp;a2s,
- int&nbsp;length)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare two arrays for equality.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/Arrays.html#equals(int[], int, int[], int, int)">equals</A></B>(int[]&nbsp;a1,
- int&nbsp;a1s,
- int[]&nbsp;a2,
- int&nbsp;a2s,
- int&nbsp;length)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare two arrays for equality.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/Arrays.html#referenceEquals(java.lang.Object[], int, java.lang.Object[], int, int)">referenceEquals</A></B>(java.lang.Object[]&nbsp;a1,
- int&nbsp;a1s,
- java.lang.Object[]&nbsp;a2,
- int&nbsp;a2s,
- int&nbsp;length)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare two lists of objects for reference-equality.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/Arrays.html#toString(byte[], int, int)">toString</A></B>(byte[]&nbsp;bytes,
- int&nbsp;start,
- int&nbsp;length)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert an array of strings to bytes.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="referenceEquals(java.lang.Object[], int, java.lang.Object[], int, int)"><!-- --></A><H3>
-referenceEquals</H3>
-<PRE>
-public static boolean <B>referenceEquals</B>(java.lang.Object[]&nbsp;a1,
- int&nbsp;a1s,
- java.lang.Object[]&nbsp;a2,
- int&nbsp;a2s,
- int&nbsp;length)</PRE>
-<DL>
-<DD>Compare two lists of objects for reference-equality.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="equals(byte[], int, byte[], int, int)"><!-- --></A><H3>
-equals</H3>
-<PRE>
-public static boolean <B>equals</B>(byte[]&nbsp;a1,
- int&nbsp;a1s,
- byte[]&nbsp;a2,
- int&nbsp;a2s,
- int&nbsp;length)</PRE>
-<DL>
-<DD>Compare two arrays for equality.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="equals(boolean[], int, boolean[], int, int)"><!-- --></A><H3>
-equals</H3>
-<PRE>
-public static boolean <B>equals</B>(boolean[]&nbsp;a1,
- int&nbsp;a1s,
- boolean[]&nbsp;a2,
- int&nbsp;a2s,
- int&nbsp;length)</PRE>
-<DL>
-<DD>Compare two arrays for equality.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="equals(int[], int, int[], int, int)"><!-- --></A><H3>
-equals</H3>
-<PRE>
-public static boolean <B>equals</B>(int[]&nbsp;a1,
- int&nbsp;a1s,
- int[]&nbsp;a2,
- int&nbsp;a2s,
- int&nbsp;length)</PRE>
-<DL>
-<DD>Compare two arrays for equality.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="toString(byte[], int, int)"><!-- --></A><H3>
-toString</H3>
-<PRE>
-public static java.lang.String <B>toString</B>(byte[]&nbsp;bytes,
- int&nbsp;start,
- int&nbsp;length)</PRE>
-<DL>
-<DD>Convert an array of strings to bytes.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="../../morfologik/util/BufferUtils.html" title="class in morfologik.util"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/Arrays.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="Arrays.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/util/BufferUtils.html b/doc/api/morfologik/util/BufferUtils.html
deleted file mode 100644
index 58d8a88..0000000
--- a/doc/api/morfologik/util/BufferUtils.html
+++ /dev/null
@@ -1,273 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-BufferUtils
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="BufferUtils";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/util/Arrays.html" title="class in morfologik.util"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/util/FileUtils.html" title="class in morfologik.util"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/BufferUtils.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="BufferUtils.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.util</FONT>
-<BR>
-Class BufferUtils</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.util.BufferUtils</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>BufferUtils</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Utility functions for buffers.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.nio.ByteBuffer</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/BufferUtils.html#ensureCapacity(java.nio.ByteBuffer, int)">ensureCapacity</A></B>(java.nio.ByteBuffer&nbsp;buffer,
- int&nbsp;capacity)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ensure the byte buffer's capacity.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.nio.CharBuffer</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/BufferUtils.html#ensureCapacity(java.nio.CharBuffer, int)">ensureCapacity</A></B>(java.nio.CharBuffer&nbsp;buffer,
- int&nbsp;capacity)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ensure the char buffer's capacity.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/BufferUtils.html#toString(java.nio.ByteBuffer)">toString</A></B>(java.nio.ByteBuffer&nbsp;sequence)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert a byte buffer to a string in platform default encoding.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="ensureCapacity(java.nio.ByteBuffer, int)"><!-- --></A><H3>
-ensureCapacity</H3>
-<PRE>
-public static java.nio.ByteBuffer <B>ensureCapacity</B>(java.nio.ByteBuffer&nbsp;buffer,
- int&nbsp;capacity)</PRE>
-<DL>
-<DD>Ensure the byte buffer's capacity. If a new buffer is allocated, its
- content is empty (the old buffer's contents is not copied).
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - The buffer to check or <code>null</code> if a new buffer
- should be allocated.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="ensureCapacity(java.nio.CharBuffer, int)"><!-- --></A><H3>
-ensureCapacity</H3>
-<PRE>
-public static java.nio.CharBuffer <B>ensureCapacity</B>(java.nio.CharBuffer&nbsp;buffer,
- int&nbsp;capacity)</PRE>
-<DL>
-<DD>Ensure the char buffer's capacity. If a new buffer is allocated, its
- content is empty (the old buffer's contents is not copied).
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - The buffer to check or <code>null</code> if a new buffer
- should be allocated.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="toString(java.nio.ByteBuffer)"><!-- --></A><H3>
-toString</H3>
-<PRE>
-public static java.lang.String <B>toString</B>(java.nio.ByteBuffer&nbsp;sequence)</PRE>
-<DL>
-<DD>Convert a byte buffer to a string in platform default encoding.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/util/Arrays.html" title="class in morfologik.util"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/util/FileUtils.html" title="class in morfologik.util"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/BufferUtils.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="BufferUtils.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/util/FileUtils.html b/doc/api/morfologik/util/FileUtils.html
deleted file mode 100644
index 438e851..0000000
--- a/doc/api/morfologik/util/FileUtils.html
+++ /dev/null
@@ -1,424 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-FileUtils
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="FileUtils";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/util/BufferUtils.html" title="class in morfologik.util"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/util/ResourceUtils.html" title="class in morfologik.util"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/FileUtils.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FileUtils.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.util</FONT>
-<BR>
-Class FileUtils</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.util.FileUtils</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>FileUtils</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Utility functions.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/FileUtils.html#assertExists(java.io.File, boolean, boolean)">assertExists</A></B>(java.io.File&nbsp;fsaFile,
- boolean&nbsp;requireFile,
- boolean&nbsp;requireDirectory)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if the given file exists.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/FileUtils.html#close(java.io.Closeable...)">close</A></B>(java.io.Closeable...&nbsp;closeables)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Force any non-null closeables.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;byte</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/FileUtils.html#readByte(java.io.InputStream)">readByte</A></B>(java.io.InputStream&nbsp;in)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read exactly one byte from the input stream.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/FileUtils.html#readFully(java.io.InputStream)">readFully</A></B>(java.io.InputStream&nbsp;stream)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads all bytes from an input stream (until EOF).</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/FileUtils.html#readFully(java.io.InputStream, byte[])">readFully</A></B>(java.io.InputStream&nbsp;in,
- byte[]&nbsp;array)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read enough bytes to fill <code>array</code> If there are not enough
- bytes, throw an exception.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/FileUtils.html#readInt(java.io.InputStream)">readInt</A></B>(java.io.InputStream&nbsp;in)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read exactly 4 bytes from the input stream.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;short</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/FileUtils.html#readShort(java.io.InputStream)">readShort</A></B>(java.io.InputStream&nbsp;in)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read exactly 2 bytes from the input stream.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/FileUtils.html#writeInt(java.io.OutputStream, int)">writeInt</A></B>(java.io.OutputStream&nbsp;os,
- int&nbsp;v)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/FileUtils.html#writeShort(java.io.OutputStream, short)">writeShort</A></B>(java.io.OutputStream&nbsp;os,
- short&nbsp;v)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="assertExists(java.io.File, boolean, boolean)"><!-- --></A><H3>
-assertExists</H3>
-<PRE>
-public static void <B>assertExists</B>(java.io.File&nbsp;fsaFile,
- boolean&nbsp;requireFile,
- boolean&nbsp;requireDirectory)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Checks if the given file exists.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="close(java.io.Closeable...)"><!-- --></A><H3>
-close</H3>
-<PRE>
-public static void <B>close</B>(java.io.Closeable...&nbsp;closeables)</PRE>
-<DL>
-<DD>Force any non-null closeables.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="readFully(java.io.InputStream)"><!-- --></A><H3>
-readFully</H3>
-<PRE>
-public static byte[] <B>readFully</B>(java.io.InputStream&nbsp;stream)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Reads all bytes from an input stream (until EOF).
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="readFully(java.io.InputStream, byte[])"><!-- --></A><H3>
-readFully</H3>
-<PRE>
-public static void <B>readFully</B>(java.io.InputStream&nbsp;in,
- byte[]&nbsp;array)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Read enough bytes to fill <code>array</code> If there are not enough
- bytes, throw an exception.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="readInt(java.io.InputStream)"><!-- --></A><H3>
-readInt</H3>
-<PRE>
-public static int <B>readInt</B>(java.io.InputStream&nbsp;in)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Read exactly 4 bytes from the input stream.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="writeInt(java.io.OutputStream, int)"><!-- --></A><H3>
-writeInt</H3>
-<PRE>
-public static void <B>writeInt</B>(java.io.OutputStream&nbsp;os,
- int&nbsp;v)
- throws java.io.IOException</PRE>
-<DL>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="readShort(java.io.InputStream)"><!-- --></A><H3>
-readShort</H3>
-<PRE>
-public static short <B>readShort</B>(java.io.InputStream&nbsp;in)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Read exactly 2 bytes from the input stream.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="readByte(java.io.InputStream)"><!-- --></A><H3>
-readByte</H3>
-<PRE>
-public static byte <B>readByte</B>(java.io.InputStream&nbsp;in)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Read exactly one byte from the input stream.
-<P>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.EOFException</CODE> - if EOF is reached.
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="writeShort(java.io.OutputStream, short)"><!-- --></A><H3>
-writeShort</H3>
-<PRE>
-public static void <B>writeShort</B>(java.io.OutputStream&nbsp;os,
- short&nbsp;v)
- throws java.io.IOException</PRE>
-<DL>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/util/BufferUtils.html" title="class in morfologik.util"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../morfologik/util/ResourceUtils.html" title="class in morfologik.util"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/FileUtils.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="FileUtils.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/util/ResourceUtils.html b/doc/api/morfologik/util/ResourceUtils.html
deleted file mode 100644
index b924071..0000000
--- a/doc/api/morfologik/util/ResourceUtils.html
+++ /dev/null
@@ -1,228 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-ResourceUtils
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="ResourceUtils";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/util/FileUtils.html" title="class in morfologik.util"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/ResourceUtils.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="ResourceUtils.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-morfologik.util</FONT>
-<BR>
-Class ResourceUtils</H2>
-<PRE>
-java.lang.Object
- <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>morfologik.util.ResourceUtils</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public final class <B>ResourceUtils</B><DT>extends java.lang.Object</DL>
-</PRE>
-
-<P>
-Resource management utilities.
-<P>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;java.io.InputStream</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../morfologik/util/ResourceUtils.html#openInputStream(java.lang.String)">openInputStream</A></B>(java.lang.String&nbsp;resource)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an input stream to the resource.</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="openInputStream(java.lang.String)"><!-- --></A><H3>
-openInputStream</H3>
-<PRE>
-public static java.io.InputStream <B>openInputStream</B>(java.lang.String&nbsp;resource)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Returns an input stream to the resource.
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>resource</CODE> - The path leading to the resource. Can be an URL, a path
- leading to a class resource or a <CODE>File</CODE>.
-<DT><B>Returns:</B><DD>InputStream instance.
-<DT><B>Throws:</B>
-<DD><CODE>java.io.IOException</CODE> - If the resource could not be found or opened.</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/util/FileUtils.html" title="class in morfologik.util"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/ResourceUtils.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="ResourceUtils.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/util/package-frame.html b/doc/api/morfologik/util/package-frame.html
deleted file mode 100644
index 1803ab0..0000000
--- a/doc/api/morfologik/util/package-frame.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.util
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameTitleFont">
-<A HREF="../../morfologik/util/package-summary.html" target="classFrame">morfologik.util</A></FONT>
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Classes</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="Arrays.html" title="class in morfologik.util" target="classFrame">Arrays</A>
-<BR>
-<A HREF="BufferUtils.html" title="class in morfologik.util" target="classFrame">BufferUtils</A>
-<BR>
-<A HREF="FileUtils.html" title="class in morfologik.util" target="classFrame">FileUtils</A>
-<BR>
-<A HREF="ResourceUtils.html" title="class in morfologik.util" target="classFrame">ResourceUtils</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/util/package-summary.html b/doc/api/morfologik/util/package-summary.html
deleted file mode 100644
index c3ce8cb..0000000
--- a/doc/api/morfologik/util/package-summary.html
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.util
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="morfologik.util";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;NEXT PACKAGE</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<H2>
-Package morfologik.util
-</H2>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Class Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/util/Arrays.html" title="class in morfologik.util">Arrays</A></B></TD>
-<TD>Compatibility layer for JVM 1.5.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/util/BufferUtils.html" title="class in morfologik.util">BufferUtils</A></B></TD>
-<TD>Utility functions for buffers.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/util/FileUtils.html" title="class in morfologik.util">FileUtils</A></B></TD>
-<TD>Utility functions.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../morfologik/util/ResourceUtils.html" title="class in morfologik.util">ResourceUtils</A></B></TD>
-<TD>Resource management utilities.</TD>
-</TR>
-</TABLE>
-&nbsp;
-
-<P>
-<DL>
-</DL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;NEXT PACKAGE</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/morfologik/util/package-tree.html b/doc/api/morfologik/util/package-tree.html
deleted file mode 100644
index c34d1a1..0000000
--- a/doc/api/morfologik/util/package-tree.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-morfologik.util Class Hierarchy
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="morfologik.util Class Hierarchy";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-Hierarchy For Package morfologik.util
-</H2>
-</CENTER>
-<DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="../../overview-tree.html">All Packages</A></DL>
-<HR>
-<H2>
-Class Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">morfologik.util.<A HREF="../../morfologik/util/Arrays.html" title="class in morfologik.util"><B>Arrays</B></A><LI TYPE="circle">morfologik.util.<A HREF="../../morfologik/util/BufferUtils.html" title="class in morfologik.util"><B>BufferUtils</B></A><LI TYPE="circle">morfologik.util.<A HREF="../../morfologik/util/FileUtils.html" title="class in morfologik.util"><B>FileUtils</B></A><LI TYPE="circle">morfologik.util.<A HREF="../../morfologik/util/ResourceUtils.html" title="class in morfologik.util"><B>ResourceUtils</B></A></UL>
-</UL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../morfologik/tools/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../index.html?morfologik/util/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/overview-frame.html b/doc/api/overview-frame.html
deleted file mode 100644
index 3e3c6be..0000000
--- a/doc/api/overview-frame.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-Overview List
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TH ALIGN="left" NOWRAP><FONT size="+1" CLASS="FrameTitleFont">
-<B></B></FONT></TH>
-</TR>
-</TABLE>
-
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="allclasses-frame.html" target="packageFrame">All Classes</A></FONT>
-<P>
-<FONT size="+1" CLASS="FrameHeadingFont">
-Packages</FONT>
-<BR>
-<FONT CLASS="FrameItemFont"><A HREF="morfologik/fsa/package-frame.html" target="packageFrame">morfologik.fsa</A></FONT>
-<BR>
-<FONT CLASS="FrameItemFont"><A HREF="morfologik/stemming/package-frame.html" target="packageFrame">morfologik.stemming</A></FONT>
-<BR>
-<FONT CLASS="FrameItemFont"><A HREF="morfologik/tools/package-frame.html" target="packageFrame">morfologik.tools</A></FONT>
-<BR>
-<FONT CLASS="FrameItemFont"><A HREF="morfologik/util/package-frame.html" target="packageFrame">morfologik.util</A></FONT>
-<BR>
-</TD>
-</TR>
-</TABLE>
-
-<P>
-&nbsp;
-</BODY>
-</HTML>
diff --git a/doc/api/overview-summary.html b/doc/api/overview-summary.html
deleted file mode 100644
index 250077d..0000000
--- a/doc/api/overview-summary.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-Overview
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Overview";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Packages</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="20%"><B><A HREF="morfologik/fsa/package-summary.html">morfologik.fsa</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="20%"><B><A HREF="morfologik/stemming/package-summary.html">morfologik.stemming</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="20%"><B><A HREF="morfologik/tools/package-summary.html">morfologik.tools</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="20%"><B><A HREF="morfologik/util/package-summary.html">morfologik.util</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-</TABLE>
-
-<P>
-&nbsp;<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Overview</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html?overview-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="overview-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/overview-tree.html b/doc/api/overview-tree.html
deleted file mode 100644
index 4d068a8..0000000
--- a/doc/api/overview-tree.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.6.0_14) on Wed Jan 26 18:49:38 CET 2011 -->
-<TITLE>
-Class Hierarchy
-</TITLE>
-
-<META NAME="date" CONTENT="2011-01-26">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="Class Hierarchy";
- }
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-<HR>
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<CENTER>
-<H2>
-Hierarchy For All Packages</H2>
-</CENTER>
-<DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="morfologik/fsa/package-tree.html">morfologik.fsa</A>, <A HREF="morfologik/stemming/package-tree.html">morfologik.stemming</A>, <A HREF="morfologik/tools/package-tree.html">morfologik.tools</A>, <A HREF="morfologik/util/package-tree.html">morfologik.util</A></DL>
-<HR>
-<H2>
-Class Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">morfologik.util.<A HREF="morfologik/util/Arrays.html" title="class in morfologik.util"><B>Arrays</B></A><LI TYPE="circle">morfologik.util.<A HREF="morfologik/util/BufferUtils.html" title="class in morfologik.util"><B>BufferUtils</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/CFSA2Serializer.html" title="class in morfologik.fsa"><B>CFSA2Serializer</B></A> (implements morfologik.fsa.<A HREF="morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A>)
-<LI TYPE="circle">morfologik.stemming.<A HREF="morfologik/stemming/Dictionary.html" title="class in morfologik.stemming"><B>Dictionary</B></A><LI TYPE="circle">morfologik.stemming.<A HREF="morfologik/stemming/DictionaryIterator.html" title="class in morfologik.stemming"><B>DictionaryIterator</B></A> (implements java.util.Iterator&lt;E&gt;)
-<LI TYPE="circle">morfologik.stemming.<A HREF="morfologik/stemming/DictionaryLookup.html" title="class in morfologik.stemming"><B>DictionaryLookup</B></A> (implements morfologik.stemming.<A HREF="morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A>, java.lang.Iterable&lt;T&gt;)
-<LI TYPE="circle">morfologik.stemming.<A HREF="morfologik/stemming/DictionaryMetadata.html" title="class in morfologik.stemming"><B>DictionaryMetadata</B></A><LI TYPE="circle">morfologik.util.<A HREF="morfologik/util/FileUtils.html" title="class in morfologik.util"><B>FileUtils</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSA.html" title="class in morfologik.fsa"><B>FSA</B></A> (implements java.lang.Iterable&lt;T&gt;)
-<UL>
-<LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/CFSA.html" title="class in morfologik.fsa"><B>CFSA</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/CFSA2.html" title="class in morfologik.fsa"><B>CFSA2</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/ConstantArcSizeFSA.html" title="class in morfologik.fsa"><B>ConstantArcSizeFSA</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSA5.html" title="class in morfologik.fsa"><B>FSA5</B></A></UL>
-<LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSA5Serializer.html" title="class in morfologik.fsa"><B>FSA5Serializer</B></A> (implements morfologik.fsa.<A HREF="morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa">FSASerializer</A>)
-<LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSABuilder.html" title="class in morfologik.fsa"><B>FSABuilder</B></A><LI TYPE="circle">morfologik.tools.<A HREF="morfologik/tools/FSABuildTool.html" title="class in morfologik.tools"><B>FSABuildTool</B></A><LI TYPE="circle">morfologik.tools.<A HREF="morfologik/tools/FSADumpTool.html" title="class in morfologik.tools"><B>FSADumpTool</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSAFinalStatesIterator.html" title="class in morfologik.fsa"><B>FSAFinalStatesIterator</B></A> (implements java.util.Iterator&lt;E&gt;)
-<LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSAInfo.html" title="class in morfologik.fsa"><B>FSAInfo</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSATraversal.html" title="class in morfologik.fsa"><B>FSATraversal</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSAUtils.html" title="class in morfologik.fsa"><B>FSAUtils</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSAUtils.IntIntHolder.html" title="class in morfologik.fsa"><B>FSAUtils.IntIntHolder</B></A><LI TYPE="circle">morfologik.tools.<A HREF="morfologik/tools/InflectionFramesTool.html" title="class in morfologik.tools"><B>InflectionFramesTool</B></A><LI TYPE="circle">morfologik.tools.<A HREF="morfologik/tools/Launcher.html" title="class in morfologik.tools"><B>Launcher</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/MatchResult.html" title="class in morfologik.fsa"><B>MatchResult</B></A><LI TYPE="circle">morfologik.tools.<A HREF="morfologik/tools/MorphEncoder.html" title="class in morfologik.tools"><B>MorphEncoder</B></A><LI TYPE="circle">morfologik.stemming.<A HREF="morfologik/stemming/PolishStemmer.html" title="class in morfologik.stemming"><B>PolishStemmer</B></A> (implements morfologik.stemming.<A HREF="morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming">IStemmer</A>, java.lang.Iterable&lt;T&gt;)
-<LI TYPE="circle">morfologik.util.<A HREF="morfologik/util/ResourceUtils.html" title="class in morfologik.util"><B>ResourceUtils</B></A><LI TYPE="circle">morfologik.stemming.<A HREF="morfologik/stemming/WordData.html" title="class in morfologik.stemming"><B>WordData</B></A> (implements java.lang.Cloneable)
-<LI TYPE="circle">morfologik.tools.<A HREF="morfologik/tools/WriterMessageLogger.html" title="class in morfologik.tools"><B>WriterMessageLogger</B></A> (implements morfologik.tools.<A HREF="morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools">IMessageLogger</A>)
-</UL>
-</UL>
-<H2>
-Interface Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSASerializer.html" title="interface in morfologik.fsa"><B>FSASerializer</B></A><LI TYPE="circle">morfologik.tools.<A HREF="morfologik/tools/IMessageLogger.html" title="interface in morfologik.tools"><B>IMessageLogger</B></A><LI TYPE="circle">morfologik.stemming.<A HREF="morfologik/stemming/IStemmer.html" title="interface in morfologik.stemming"><B>IStemmer</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/StateVisitor.html" title="interface in morfologik.fsa"><B>StateVisitor</B></A></UL>
-<H2>
-Enum Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">java.lang.Object<UL>
-<LI TYPE="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
-<UL>
-<LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSAFlags.html" title="enum in morfologik.fsa"><B>FSAFlags</B></A><LI TYPE="circle">morfologik.fsa.<A HREF="morfologik/fsa/FSABuilder.InfoEntry.html" title="enum in morfologik.fsa"><B>FSABuilder.InfoEntry</B></A><LI TYPE="circle">morfologik.tools.<A HREF="morfologik/tools/FSABuildTool.Format.html" title="enum in morfologik.tools"><B>FSABuildTool.Format</B></A></UL>
-</UL>
-</UL>
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV&nbsp;
-&nbsp;NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
-&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
- <!--
- if(window==top) {
- document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
- }
- //-->
-</SCRIPT>
-<NOSCRIPT>
- <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/doc/api/package-list b/doc/api/package-list
deleted file mode 100644
index dd0082d..0000000
--- a/doc/api/package-list
+++ /dev/null
@@ -1,4 +0,0 @@
-morfologik.fsa
-morfologik.stemming
-morfologik.tools
-morfologik.util
diff --git a/doc/api/resources/inherit.gif b/doc/api/resources/inherit.gif
deleted file mode 100644
index c814867..0000000
--- a/doc/api/resources/inherit.gif
+++ /dev/null
Binary files differ
diff --git a/doc/api/stylesheet.css b/doc/api/stylesheet.css
deleted file mode 100644
index cbd3428..0000000
--- a/doc/api/stylesheet.css
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Javadoc style sheet */
-
-/* Define colors, fonts and other style attributes here to override the defaults */
-
-/* Page background color */
-body { background-color: #FFFFFF; color:#000000 }
-
-/* Headings */
-h1 { font-size: 145% }
-
-/* Table colors */
-.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */
-.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */
-.TableRowColor { background: #FFFFFF; color:#000000 } /* White */
-
-/* Font used in left-hand frame lists */
-.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
-.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
-.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
-
-/* Navigation bar fonts and colors */
-.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */
-.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */
-.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;}
-.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;}
-
-.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
-.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
-
diff --git a/lib/commons-cli-1.2.jar b/lib/commons-cli-1.2.jar
deleted file mode 100644
index ce4b9ff..0000000
--- a/lib/commons-cli-1.2.jar
+++ /dev/null
Binary files differ
diff --git a/lib/hppc-0.3.2.jar b/lib/hppc-0.3.2.jar
deleted file mode 100644
index 2392b00..0000000
--- a/lib/hppc-0.3.2.jar
+++ /dev/null
Binary files differ
diff --git a/lib/junit-4.7.jar b/lib/junit-4.7.jar
deleted file mode 100644
index 700ad69..0000000
--- a/lib/junit-4.7.jar
+++ /dev/null
Binary files differ
diff --git a/lib/junit-benchmarks-0.1.0.jar b/lib/junit-benchmarks-0.1.0.jar
deleted file mode 100644
index 225c2a6..0000000
--- a/lib/junit-benchmarks-0.1.0.jar
+++ /dev/null
Binary files differ
diff --git a/lib/junit.LICENSE b/lib/junit.LICENSE
deleted file mode 100644
index 4d42e47..0000000
--- a/lib/junit.LICENSE
+++ /dev/null
@@ -1,88 +0,0 @@
-Common Public License - v 1.0
-
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-1. DEFINITIONS
-
-"Contribution" means:
-
- a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
- b) in the case of each subsequent Contributor:
-
- i) changes to the Program, and
-
- ii) additions to the Program;
-
- where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
-
-"Contributor" means any person or entity that distributes the Program.
-
-"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
-
-"Program" means the Contributions distributed in accordance with this Agreement.
-
-"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
-
-2. GRANT OF RIGHTS
-
- a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
-
- b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
-
- c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
-
- d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
-
-3. REQUIREMENTS
-
-A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
-
- a) it complies with the terms and conditions of this Agreement; and
-
- b) its license agreement:
-
- i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
-
- ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
-
- iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
-
- iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
-
-When the Program is made available in source code form:
-
- a) it must be made available under this Agreement; and
-
- b) a copy of this Agreement must be included with each copy of the Program.
-
-Contributors may not remove or alter any copyright notices contained within the Program.
-
-Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
-
-4. COMMERCIAL DISTRIBUTION
-
-Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
-
-For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
-
-5. NO WARRANTY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
-
-6. DISCLAIMER OF LIABILITY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-7. GENERAL
-
-If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
-
-If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
-
-All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
-
-Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
-
-This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
-
-
diff --git a/lib/thirdparty.LICENSE b/lib/thirdparty.LICENSE
deleted file mode 100644
index 10c50fe..0000000
--- a/lib/thirdparty.LICENSE
+++ /dev/null
@@ -1,5 +0,0 @@
-
-HPPC library integrates the following classes from other open-source projects:
-
-- fast BitSets from Apache Lucene (Apache license; same as HPPC).
-
diff --git a/lib/commons-cli-1.2.LICENSE b/licenses/commons-cli.LICENSE
index 57bc88a..57bc88a 100644
--- a/lib/commons-cli-1.2.LICENSE
+++ b/licenses/commons-cli.LICENSE
diff --git a/lib/junit-benchmarks.LICENSE b/licenses/commons-lang.LICENSE
index d645695..57bc88a 100644
--- a/lib/junit-benchmarks.LICENSE
+++ b/licenses/commons-lang.LICENSE
@@ -1,4 +1,3 @@
-
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@@ -200,3 +199,4 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+
diff --git a/lib/hppc.LICENSE b/licenses/hppc.LICENSE
index d645695..d645695 100644
--- a/lib/hppc.LICENSE
+++ b/licenses/hppc.LICENSE
diff --git a/licenses/morfologik-polish.LICENSE b/licenses/morfologik-polish.LICENSE
new file mode 100644
index 0000000..60b6e2e
--- /dev/null
+++ b/licenses/morfologik-polish.LICENSE
@@ -0,0 +1,28 @@
+BSD-licensed dictionary of Polish (Morfologik)
+
+Copyright (c) 2013, Marcin Miłkowski
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDERS “AS IS†AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/morfologik-distribution/pom.xml b/morfologik-distribution/pom.xml
new file mode 100644
index 0000000..d2c3035
--- /dev/null
+++ b/morfologik-distribution/pom.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-parent</artifactId>
+ <version>1.9.0</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>morfologik-distribution</artifactId>
+ <packaging>pom</packaging>
+
+ <name>Morfologik Distribution Package</name>
+ <description>Morfologik Distribution Package</description>
+
+ <properties>
+ <skip.deployment>true</skip.deployment>
+ </properties>
+
+ <build>
+ <defaultGoal>install</defaultGoal>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>distribution</id>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/dependency</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>bin-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <configuration>
+ <attach>false</attach>
+ <descriptors>
+ <descriptor>src/main/assembly/bin.xml</descriptor>
+ </descriptors>
+ <tarLongFileMode>gnu</tarLongFileMode>
+ <appendAssemblyId>false</appendAssemblyId>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-fsa</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-stemming</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-polish</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-tools</artifactId>
+ <version>${project.version}</version>
+ <type>jar</type>
+ </dependency>
+
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-tools</artifactId>
+ <version>${project.version}</version>
+ <type>jar</type>
+ <classifier>standalone</classifier>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/morfologik-distribution/src/main/assembly/bin.xml b/morfologik-distribution/src/main/assembly/bin.xml
new file mode 100644
index 0000000..4adb8c5
--- /dev/null
+++ b/morfologik-distribution/src/main/assembly/bin.xml
@@ -0,0 +1,77 @@
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+
+ <id>bin</id>
+
+ <formats>
+ <format>dir</format>
+ <format>zip</format>
+ </formats>
+
+ <fileSets>
+ <!-- All JARs split into modules -->
+ <fileSet>
+ <directory>target/dependency</directory>
+ <includes>
+ <include>*.jar</include>
+ <include>*.txt</include>
+ </includes>
+ <excludes>
+ <exclude>*-standalone.jar</exclude>
+ </excludes>
+ <outputDirectory>lib</outputDirectory>
+ </fileSet>
+
+ <!-- Standalone JAR at the top level. -->
+ <fileSet>
+ <directory>target/dependency</directory>
+ <includes>
+ <include>*-standalone.jar</include>
+ </includes>
+ <outputDirectory></outputDirectory>
+ </fileSet>
+
+ <!-- Licenses -->
+ <fileSet>
+ <directory>../licenses</directory>
+ <outputDirectory>lib</outputDirectory>
+ <includes>
+ <include>*.LICENSE</include>
+ </includes>
+ </fileSet>
+
+ <!-- READMEs and top-level files. -->
+ <fileSet>
+ <directory>../</directory>
+ <outputDirectory />
+ <includes>
+ <include>morfologik.LICENSE</include>
+ <include>README</include>
+ <include>CHANGES</include>
+ </includes>
+ <fileMode>0644</fileMode>
+ </fileSet>
+
+ <!-- Per-project javadocs -->
+ <fileSet>
+ <directory>../morfologik-fsa/target/apidocs</directory>
+ <outputDirectory>apidocs/morfologik-fsa</outputDirectory>
+ </fileSet>
+
+ <fileSet>
+ <directory>../morfologik-polish/target/apidocs</directory>
+ <outputDirectory>apidocs/morfologik-polish</outputDirectory>
+ </fileSet>
+
+ <fileSet>
+ <directory>../morfologik-stemming/target/apidocs</directory>
+ <outputDirectory>apidocs/morfologik-stemming</outputDirectory>
+ </fileSet>
+
+ <fileSet>
+ <directory>../morfologik-tools/target/apidocs</directory>
+ <outputDirectory>apidocs/morfologik-tools</outputDirectory>
+ </fileSet>
+ </fileSets>
+</assembly>
diff --git a/morfologik-fsa/pom.xml b/morfologik-fsa/pom.xml
new file mode 100644
index 0000000..80abf3b
--- /dev/null
+++ b/morfologik-fsa/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-parent</artifactId>
+ <version>1.9.0</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>morfologik-fsa</artifactId>
+ <packaging>jar</packaging>
+
+ <name>Morfologik FSA</name>
+ <description>Morfologik Finite State Automata (construction and traversal).</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.carrotsearch</groupId>
+ <artifactId>hppc</artifactId>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <defaultGoal>install</defaultGoal>
+ </build>
+</project>
diff --git a/src/morfologik/fsa/CFSA.java b/morfologik-fsa/src/main/java/morfologik/fsa/CFSA.java
index 695664d..695664d 100644
--- a/src/morfologik/fsa/CFSA.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/CFSA.java
diff --git a/src/morfologik/fsa/CFSA2.java b/morfologik-fsa/src/main/java/morfologik/fsa/CFSA2.java
index 6955da4..6955da4 100644
--- a/src/morfologik/fsa/CFSA2.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/CFSA2.java
diff --git a/src/morfologik/fsa/CFSA2Serializer.java b/morfologik-fsa/src/main/java/morfologik/fsa/CFSA2Serializer.java
index 11c7b13..8026f33 100644
--- a/src/morfologik/fsa/CFSA2Serializer.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/CFSA2Serializer.java
@@ -15,9 +15,9 @@ import java.util.Comparator;
import java.util.EnumSet;
import java.util.PriorityQueue;
import java.util.Set;
+import java.util.TreeSet;
import morfologik.fsa.FSAUtils.IntIntHolder;
-import morfologik.tools.IMessageLogger;
import morfologik.util.FileUtils;
import com.carrotsearch.hppc.BitSet;
@@ -177,17 +177,24 @@ public final class CFSA2Serializer implements FSASerializer {
}
};
- PriorityQueue<IntIntHolder> labelAndCount = new PriorityQueue<IntIntHolder>(countByValue.length, comparator);
+ TreeSet<IntIntHolder> labelAndCount = new TreeSet<IntIntHolder>(comparator);
for (int label = 0; label < countByValue.length; label++) {
if (countByValue[label] > 0) {
labelAndCount.add(new IntIntHolder(label, countByValue[label]));
}
}
+
+ this.logger.startPart("Label distribution");
+ for (IntIntHolder c : labelAndCount) {
+ this.logger.log("0x" + Integer.toHexString(c.a), c.b);
+ }
+ this.logger.endPart();
labelsIndex = new byte [1 + Math.min(labelAndCount.size(), CFSA2.LABEL_INDEX_SIZE)];
labelsInvIndex = new int [256];
for (int i = labelsIndex.length - 1; i > 0 && !labelAndCount.isEmpty(); i--) {
- IntIntHolder p = labelAndCount.remove();
+ IntIntHolder p = labelAndCount.first();
+ labelAndCount.remove(p);
labelsInvIndex[p.a] = i;
labelsIndex[i] = (byte) p.a;
}
diff --git a/src/morfologik/fsa/ConstantArcSizeFSA.java b/morfologik-fsa/src/main/java/morfologik/fsa/ConstantArcSizeFSA.java
index 2f6d412..2f6d412 100644
--- a/src/morfologik/fsa/ConstantArcSizeFSA.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/ConstantArcSizeFSA.java
diff --git a/src/morfologik/fsa/FSA.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSA.java
index 28b44a2..d734b95 100644
--- a/src/morfologik/fsa/FSA.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSA.java
@@ -1,8 +1,15 @@
package morfologik.fsa;
-import java.io.*;
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.nio.ByteBuffer;
-import java.util.*;
+import java.util.BitSet;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Set;
/**
* This is a top abstract class for handling finite state automata. These
@@ -267,4 +274,13 @@ public abstract class FSA implements Iterable<ByteBuffer> {
throw new IOException("Unsupported automaton version: "
+ header.version);
}
-} \ No newline at end of file
+
+ public static FSA read(File fsa) throws IOException {
+ InputStream is = new BufferedInputStream(new FileInputStream(fsa));
+ try {
+ return read(is);
+ } finally {
+ is.close();
+ }
+ }
+}
diff --git a/src/morfologik/fsa/FSA5.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSA5.java
index d43f4d8..d43f4d8 100644
--- a/src/morfologik/fsa/FSA5.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSA5.java
diff --git a/src/morfologik/fsa/FSA5Serializer.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSA5Serializer.java
index be017a4..21627a9 100644
--- a/src/morfologik/fsa/FSA5Serializer.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSA5Serializer.java
@@ -5,8 +5,6 @@ import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.util.*;
-import morfologik.tools.IMessageLogger;
-
import com.carrotsearch.hppc.*;
import com.carrotsearch.hppc.BitSet;
diff --git a/src/morfologik/fsa/FSABuilder.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSABuilder.java
index 0cf7cc0..0cf7cc0 100644
--- a/src/morfologik/fsa/FSABuilder.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSABuilder.java
diff --git a/src/morfologik/fsa/FSAFinalStatesIterator.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSAFinalStatesIterator.java
index 9e381f4..9e381f4 100644
--- a/src/morfologik/fsa/FSAFinalStatesIterator.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSAFinalStatesIterator.java
diff --git a/src/morfologik/fsa/FSAFlags.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSAFlags.java
index 7b9a730..7b9a730 100644
--- a/src/morfologik/fsa/FSAFlags.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSAFlags.java
diff --git a/src/morfologik/fsa/FSAHeader.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSAHeader.java
index 76fd6ff..76fd6ff 100644
--- a/src/morfologik/fsa/FSAHeader.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSAHeader.java
diff --git a/src/morfologik/fsa/FSAInfo.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSAInfo.java
index dc5cb27..4015dce 100644
--- a/src/morfologik/fsa/FSAInfo.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSAInfo.java
@@ -1,7 +1,8 @@
package morfologik.fsa;
import java.util.BitSet;
-import java.util.HashMap;
+
+import com.carrotsearch.hppc.IntIntOpenHashMap;
/**
* Compute additional information about an FSA: number of arcs, nodes, etc.
@@ -51,8 +52,7 @@ public final class FSAInfo {
* Computes the exact number of final states.
*/
private static class FinalStateVisitor {
- final HashMap<Integer, Integer> visitedNodes
- = new HashMap<Integer, Integer>();
+ final IntIntOpenHashMap visitedNodes = new IntIntOpenHashMap();
private final FSA fsa;
@@ -61,9 +61,8 @@ public final class FSAInfo {
}
public int visitNode(int node) {
- Integer cached = visitedNodes.get(node);
- if (cached != null)
- return cached;
+ if (visitedNodes.containsKey(node))
+ return visitedNodes.lget();
int fromHere = 0;
for (int arc = fsa.getFirstArc(node);
diff --git a/src/morfologik/fsa/FSASerializer.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSASerializer.java
index 414640e..fc52eeb 100644
--- a/src/morfologik/fsa/FSASerializer.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSASerializer.java
@@ -4,8 +4,6 @@ import java.io.IOException;
import java.io.OutputStream;
import java.util.Set;
-import morfologik.tools.IMessageLogger;
-
/**
* All FSA serializers to binary formats will implement this interface.
*/
diff --git a/src/morfologik/fsa/FSATraversal.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSATraversal.java
index 9e59003..9e59003 100644
--- a/src/morfologik/fsa/FSATraversal.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSATraversal.java
diff --git a/src/morfologik/fsa/FSAUtils.java b/morfologik-fsa/src/main/java/morfologik/fsa/FSAUtils.java
index cad611e..cad611e 100644
--- a/src/morfologik/fsa/FSAUtils.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/FSAUtils.java
diff --git a/src/morfologik/tools/IMessageLogger.java b/morfologik-fsa/src/main/java/morfologik/fsa/IMessageLogger.java
index 14f9f00..4d86c1b 100644
--- a/src/morfologik/tools/IMessageLogger.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/IMessageLogger.java
@@ -1,4 +1,4 @@
-package morfologik.tools;
+package morfologik.fsa;
public interface IMessageLogger {
diff --git a/src/morfologik/fsa/MatchResult.java b/morfologik-fsa/src/main/java/morfologik/fsa/MatchResult.java
index 2f5cbd7..2f5cbd7 100644
--- a/src/morfologik/fsa/MatchResult.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/MatchResult.java
diff --git a/src/morfologik/fsa/NullMessageLogger.java b/morfologik-fsa/src/main/java/morfologik/fsa/NullMessageLogger.java
index 6d326d9..c5134b6 100644
--- a/src/morfologik/fsa/NullMessageLogger.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/NullMessageLogger.java
@@ -1,7 +1,5 @@
package morfologik.fsa;
-import morfologik.tools.IMessageLogger;
-
/*
* Do-nothing logger.
*/
diff --git a/src/morfologik/fsa/StateVisitor.java b/morfologik-fsa/src/main/java/morfologik/fsa/StateVisitor.java
index 8ced239..8ced239 100644
--- a/src/morfologik/fsa/StateVisitor.java
+++ b/morfologik-fsa/src/main/java/morfologik/fsa/StateVisitor.java
diff --git a/src/morfologik/util/Arrays.java b/morfologik-fsa/src/main/java/morfologik/util/Arrays.java
index 4d1d840..4d1d840 100644
--- a/src/morfologik/util/Arrays.java
+++ b/morfologik-fsa/src/main/java/morfologik/util/Arrays.java
diff --git a/src/morfologik/util/BufferUtils.java b/morfologik-fsa/src/main/java/morfologik/util/BufferUtils.java
index 6ccfbc6..6ccfbc6 100644
--- a/src/morfologik/util/BufferUtils.java
+++ b/morfologik-fsa/src/main/java/morfologik/util/BufferUtils.java
diff --git a/src/morfologik/util/FileUtils.java b/morfologik-fsa/src/main/java/morfologik/util/FileUtils.java
index 5d62212..5d62212 100644
--- a/src/morfologik/util/FileUtils.java
+++ b/morfologik-fsa/src/main/java/morfologik/util/FileUtils.java
diff --git a/src/morfologik/util/ResourceUtils.java b/morfologik-fsa/src/main/java/morfologik/util/ResourceUtils.java
index 2c7bd23..2c7bd23 100644
--- a/src/morfologik/util/ResourceUtils.java
+++ b/morfologik-fsa/src/main/java/morfologik/util/ResourceUtils.java
diff --git a/src-test/morfologik/fsa/CFSA2SerializerTest.java b/morfologik-fsa/src/test/java/morfologik/fsa/CFSA2SerializerTest.java
index 332bbcc..332bbcc 100644
--- a/src-test/morfologik/fsa/CFSA2SerializerTest.java
+++ b/morfologik-fsa/src/test/java/morfologik/fsa/CFSA2SerializerTest.java
diff --git a/src-test/morfologik/fsa/FSA5SerializerTest.java b/morfologik-fsa/src/test/java/morfologik/fsa/FSA5SerializerTest.java
index 1d05cfc..1d05cfc 100644
--- a/src-test/morfologik/fsa/FSA5SerializerTest.java
+++ b/morfologik-fsa/src/test/java/morfologik/fsa/FSA5SerializerTest.java
diff --git a/src-test/morfologik/fsa/FSA5Test.java b/morfologik-fsa/src/test/java/morfologik/fsa/FSA5Test.java
index 869dfeb..97b2f05 100644
--- a/src-test/morfologik/fsa/FSA5Test.java
+++ b/morfologik-fsa/src/test/java/morfologik/fsa/FSA5Test.java
@@ -12,8 +12,6 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import morfologik.stemming.Dictionary;
-
import org.junit.Test;
/**
@@ -54,16 +52,6 @@ public final class FSA5Test {
assertEquals(4, info2.nodeCount);
assertEquals(7, info2.arcsCount);
}
-
- @Test
- public void testArcsAndNodesLarge() throws IOException {
- final FSA fsa3 = Dictionary.getForLanguage("pl").fsa;
- FSAInfo info3 = new FSAInfo(fsa3);
-
- assertEquals(293329, info3.nodeCount);
- assertEquals(679676, info3.arcsCount);
- assertEquals(3672200, info3.finalStatesCount);
- }
@Test
public void testNumbers() throws IOException {
diff --git a/src-test/morfologik/fsa/FSABuilderTest.java b/morfologik-fsa/src/test/java/morfologik/fsa/FSABuilderTest.java
index d2e1bad..d2e1bad 100644
--- a/src-test/morfologik/fsa/FSABuilderTest.java
+++ b/morfologik-fsa/src/test/java/morfologik/fsa/FSABuilderTest.java
diff --git a/src-test/morfologik/fsa/FSATestUtils.java b/morfologik-fsa/src/test/java/morfologik/fsa/FSATestUtils.java
index d6cfeee..d6cfeee 100644
--- a/src-test/morfologik/fsa/FSATestUtils.java
+++ b/morfologik-fsa/src/test/java/morfologik/fsa/FSATestUtils.java
diff --git a/src-test/morfologik/fsa/FSATraversalTest.java b/morfologik-fsa/src/test/java/morfologik/fsa/FSATraversalTest.java
index ddafb6d..ddafb6d 100644
--- a/src-test/morfologik/fsa/FSATraversalTest.java
+++ b/morfologik-fsa/src/test/java/morfologik/fsa/FSATraversalTest.java
diff --git a/src-test/morfologik/fsa/SerializerTestBase.java b/morfologik-fsa/src/test/java/morfologik/fsa/SerializerTestBase.java
index ce373ba..ce373ba 100644
--- a/src-test/morfologik/fsa/SerializerTestBase.java
+++ b/morfologik-fsa/src/test/java/morfologik/fsa/SerializerTestBase.java
diff --git a/src-test/morfologik/util/MinMax.java b/morfologik-fsa/src/test/java/morfologik/util/MinMax.java
index 4af6118..4af6118 100644
--- a/src-test/morfologik/util/MinMax.java
+++ b/morfologik-fsa/src/test/java/morfologik/util/MinMax.java
diff --git a/src-test/morfologik/fsa/abc-numbers.fsa b/morfologik-fsa/src/test/resources/morfologik/fsa/abc-numbers.fsa
index d97091d..d97091d 100644
--- a/src-test/morfologik/fsa/abc-numbers.fsa
+++ b/morfologik-fsa/src/test/resources/morfologik/fsa/abc-numbers.fsa
Binary files differ
diff --git a/src-test/morfologik/fsa/abc.fsa b/morfologik-fsa/src/test/resources/morfologik/fsa/abc.fsa
index 68c0b96..68c0b96 100644
--- a/src-test/morfologik/fsa/abc.fsa
+++ b/morfologik-fsa/src/test/resources/morfologik/fsa/abc.fsa
Binary files differ
diff --git a/src-test/morfologik/fsa/abc.in b/morfologik-fsa/src/test/resources/morfologik/fsa/abc.in
index 7bb8744..7bb8744 100644
--- a/src-test/morfologik/fsa/abc.in
+++ b/morfologik-fsa/src/test/resources/morfologik/fsa/abc.in
diff --git a/src-test/morfologik/fsa/en_tst.dict b/morfologik-fsa/src/test/resources/morfologik/fsa/en_tst.dict
index 09cc22b..09cc22b 100644
--- a/src-test/morfologik/fsa/en_tst.dict
+++ b/morfologik-fsa/src/test/resources/morfologik/fsa/en_tst.dict
Binary files differ
diff --git a/src-test/morfologik/fsa/minimal.fsa b/morfologik-fsa/src/test/resources/morfologik/fsa/minimal.fsa
index 9d667b7..9d667b7 100644
--- a/src-test/morfologik/fsa/minimal.fsa
+++ b/morfologik-fsa/src/test/resources/morfologik/fsa/minimal.fsa
Binary files differ
diff --git a/src-test/morfologik/fsa/minimal.in b/morfologik-fsa/src/test/resources/morfologik/fsa/minimal.in
index 7ae8d81..7ae8d81 100644
--- a/src-test/morfologik/fsa/minimal.in
+++ b/morfologik-fsa/src/test/resources/morfologik/fsa/minimal.in
diff --git a/src-test/morfologik/fsa/minimal2.fsa b/morfologik-fsa/src/test/resources/morfologik/fsa/minimal2.fsa
index e81f6d0..e81f6d0 100644
--- a/src-test/morfologik/fsa/minimal2.fsa
+++ b/morfologik-fsa/src/test/resources/morfologik/fsa/minimal2.fsa
Binary files differ
diff --git a/src-test/morfologik/fsa/minimal2.in b/morfologik-fsa/src/test/resources/morfologik/fsa/minimal2.in
index d28708d..d28708d 100644
--- a/src-test/morfologik/fsa/minimal2.in
+++ b/morfologik-fsa/src/test/resources/morfologik/fsa/minimal2.in
diff --git a/morfologik-polish/pom.xml b/morfologik-polish/pom.xml
new file mode 100644
index 0000000..57f9456
--- /dev/null
+++ b/morfologik-polish/pom.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-parent</artifactId>
+ <version>1.9.0</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>morfologik-polish</artifactId>
+ <packaging>jar</packaging>
+
+ <name>Morfologik Stemming Dictionary for Polish</name>
+ <description>Morfologik Stemming Dictionary for Polish.</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-stemming</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.carrotsearch</groupId>
+ <artifactId>junit-benchmarks</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <defaultGoal>install</defaultGoal>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/morfologik-polish/src/main/java/morfologik/stemming/PolishStemmer.java b/morfologik-polish/src/main/java/morfologik/stemming/PolishStemmer.java
new file mode 100644
index 0000000..ac346e9
--- /dev/null
+++ b/morfologik-polish/src/main/java/morfologik/stemming/PolishStemmer.java
@@ -0,0 +1,54 @@
+package morfologik.stemming;
+
+import java.util.*;
+
+/**
+ * A dictionary-based stemmer for the Polish language. This stemmer requires an
+ * FSA-compiled dictionary to be present in classpath resources.
+ *
+ * <b>Objects of this class are not thread safe.</b>
+ *
+ * @see morfologik.stemming.DictionaryLookup
+ */
+public final class PolishStemmer implements IStemmer, Iterable<WordData> {
+ /**
+ * Dictionary lookup delegate.
+ */
+ private final List<DictionaryLookup> delegate = new ArrayList<DictionaryLookup>();
+
+ /*
+ *
+ */
+ public PolishStemmer() {
+ delegate.add(new DictionaryLookup(Dictionary.getForLanguage("pl")));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public List<WordData> lookup(CharSequence word) {
+ if (delegate.size() == 1) {
+ return delegate.get(0).lookup(word);
+ } else {
+ List<WordData> forms = null;
+ for (DictionaryLookup lookup : delegate) {
+ forms = lookup.lookup(word);
+ if (forms.size() > 0)
+ break;
+ }
+ return forms;
+ }
+ }
+
+ /**
+ * Iterates over all dictionary forms stored in this stemmer.
+ */
+ public Iterator<WordData> iterator() {
+ if (delegate.size() == 1) {
+ return delegate.get(0).iterator();
+ } else {
+ throw new RuntimeException("No iteration over compound stemmer forms: "
+ + Arrays.toString(delegate.toArray()));
+ }
+ }
+}
diff --git a/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.README-en b/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.README-en
new file mode 100644
index 0000000..292c1ca
--- /dev/null
+++ b/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.README-en
@@ -0,0 +1,67 @@
+README
+
+Morfologik is a project aiming at generating Polish morphosyntactic
+dictionaries (hence the name) used for part-of-speech tagging and
+part-of-speech synthesis.
+
+VERSION: 2.0 PoliMorf
+
+BUILD: 8 mar 2013 15:53:45
+
+LICENCE
+
+Copyright (c) 2013, Marcin Mi³kowski
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+1. morfologik.txt is a tab-separated file, containing the following format:
+
+inflected-formHTbase-formHTtags
+
+where HT means a horizontal tab.
+
+2. polish.dict is a binary dictionary file for morphological analysis in
+fsa_morph program by Jan Daciuk
+(see http://www.eti.pg.gda.pl/katedry/kiw/pracownicy/Jan.Daciuk/personal/fsa.html),
+usable also in LanguageTool grammar checker.
+
+3. polish_synth.dict is a binary file for grammatical synthesis, usable
+by morfologik-stemming library. To get an inflected word, use the
+following syntax in fsa_morph:
+
+<word>|<tag>
+
+For example:
+
+niemiecki|adjp
+
+gives "niemiecku+".
+
+4. polish.info and polish_synth.info are required for using the binary
+dictionaries in morfologik-stemming Java library.
+
+TAGSET
+
+The tagset used is roughly similar to IPI/NKJP corpus tagset, and described in more detail in the readme_pl.txt file.
+See also www.nkjp.pl.
+
+Morfologik, (c) 2007-2013 Marcin Mi³kowski. \ No newline at end of file
diff --git a/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.README-pl b/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.README-pl
new file mode 100644
index 0000000..01ce8c7
--- /dev/null
+++ b/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.README-pl
@@ -0,0 +1,141 @@
+INFORMACJA
+
+Morfologik to projekt tworzenia polskich słowników morfosyntaktycznych (stąd nazwa) służących do znakowania
+morfosyntaktycznego i syntezy gramatycznej.
+
+LICENCJA
+
+Copyright © 2013 Marcin Miłkowski
+Wszelkie prawa zastrzeżone
+Redystrybucja i używanie, czy to w formie kodu źródłowego, czy w formie kodu wykonawczego, są dozwolone pod warunkiem spełnienia poniższych warunków:
+1. Redystrybucja kodu źródłowego musi zawierać powyższą notę copyrightową, niniejszą listę warunków oraz poniższe oświadczenie o wyłączeniu odpowiedzialności.
+2. Redystrybucja kodu wykonawczego musi zawierać powyższą notę copyrightową, niniejszą listę warunków oraz poniższe oświadczenie o wyłączeniu odpowiedzialności w dokumentacji i/lub w innych materiałach dostarczanych wraz z kopią oprogramowania.
+TO OPROGRAMOWANIE JEST DOSTARCZONE PRZEZ <POSIADACZA PRAW AUTORSKICH> „TAKIM, JAKIE JESTâ€. KAÅ»DA, DOROZUMIANA LUB BEZPOÅšREDNIO WYRAÅ»ONA GWARANCJA, NIE WYÅÄ„CZAJÄ„C DOROZUMIANEJ GWARANCJI PRZYDATNOÅšCI HANDLOWEJ I PRZYDATNOÅšCI DO OKREÅšLONEGO ZASTOSOWANIA, JEST WYÅÄ„CZONA. W Å»ADNYM WYPADKU <POSIADACZE PRAW AUTORSKICH> NIE MOGÄ„ BYĆ ODPOWIEDZIALNI ZA JAKIEKOLWIEK BEZPOÅšREDNIE, POÅšREDNIE, INCYDENTALNE, SPECJALNE, UBOCZNE I WTÓRNE SZKODY (NIE WYÅÄ„CZAJÄ„C OBOWIÄ„ZKU DOSTARCZENIA PRODUKTU ZASTĘPCZEGO LUB SERWISU, ODPOWIEDZIALNOÅšCI Z TYTUÅU UTRATY WALORÓW UÅ»YTKOWYCH, UTRATY DANYCH LUB KORZYÅšCI, A TAKÅ»E PRZERW W PRACY PRZEDSIĘBIORSTWA) SPOWODOWANE W JAKIKOLWIEK SPOSÓB I NA PODSTAWIE ISTNIEJÄ„CEJ W TEORII ODPOWIEDZIALNOÅšCI KONTRAKTOWEJ, CAÅKOWITEJ LUB DELIKTOWEJ (WYNIKÅEJ ZARÓWNO Z NIEDBALSTWA JAK INNYCH POSTACI WINY), POWSTAÅE W JAKIKOLWIEK SPOSÓB W WYNIKU UÅ»YWANIA LUB MAJÄ„CE ZWIÄ„ZEK Z UÅ»YWANIEM OPROGRAMOWANIA, NAWET JEÅšLI O MOÅ»LIWOÅšCI POWSTANIA TAKICH SZKÓD OSTRZEÅ»ONO.
+
+ŹRÓDÅO
+
+Dane pochodzÄ… ze sÅ‚ownika sjp.pl oraz sÅ‚ownika PoliMorf i sÄ… licencjonowane na powyższej licencji. Dane źródÅ‚owe pochodzÄ… z polskiego sÅ‚ownika ispell, nastÄ™pnie redagowanego na stronach kurnik.pl/slownik i sjp.pl, a także SÅ‚ownika Gramatycznego JÄ™zyka Polskiego. Autorzy: (1) ispell: MirosÅ‚aw Prywata, Piotr Gackiewicz, WÅ‚odzimierz Macewicz, Åukasz SzaÅ‚kiewicz, Marek Futrega.
+(2) SGJP: Zygmunt Saloni, Włodzimierz Gruszczyński, Marcin Woliński, Robert Wołosz.
+
+PLIKI
+
+1. morfologik.txt to plik tekstowy z polami rozdzielanymi tabulatorem,
+o następującym formacie:
+
+forma-odmienionaHTforma-podstawowaHTznaczniki
+
+gdzie HT oznacza tabulator poziomy.
+
+Kodowanie: UTF-8
+
+2. polish.dict to binarny plik słownika dla programu fsa_morph Jana Daciuka
+(zob. http://www.eti.pg.gda.pl/katedry/kiw/pracownicy/Jan.Daciuk/personal/fsa.html),
+wykorzystywany również bezpośrednio przez korektor gramatyczny LanguageTool.
+
+3. polish_synth.dict to binarny plik słownika syntezy gramatycznej,
+używany w fsa_morph i LanguageTool. Aby uzyskać formę odmienioną,
+należy używać następującej składni w zapytaniu programu fsa_morph:
+
+<wyraz>|<znacznik>
+
+Na przykład:
+
+niemiecki|adjp
+
+daje "niemiecku+".
+
+4. polish.info i polish_synth.info - pliki wymagane do użycia plików
+binarnych w bibliotece morfologik-stemming.
+
+Do wykonania skryptów źródłowych są potrzebne następujące pliki:
+
+Plik: odm.txt - aktualny słownik z witryny www.kurnik.pl/slownik (słownik odmian)
+Strona: http://www.kurnik.pl/slownik/odmiany/
+Pobieranie: http://www.kurnik.org/dictionary/odm/alt-odm-<data>.tar.gz
+
+Plik: polish.all - ze słownika alternatywnego
+Strona: http://www.kurnik.pl/slownik/ort/
+Pobieranie: http://www.kurnik.org/dictionary/alt-ispell-pl-src.tar.bz2
+
+Plik : pl_PL.aff (plik afiksów)
+Strona: http://www.kurnik.pl/slownik/ort/
+Pobieranie: http://www.kurnik.org/dictionary/alt-myspell-pl.tar.bz2
+
+Należy też ze strony http://www.eti.pg.gda.pl/katedry/kiw/pracownicy/Jan.Daciuk/personal/fsa_polski.html
+Pobrać ftp://ftp.pg.gda.pl/pub/software/xtras-PG/fsa/fsa_current.tar.gz i zbudować *fsa_build
+Z tego pakietu wykorzystany bedzie skrypt *morph_infix.awk*.
+W pliku Makefile należy sprawdzić, czy ścieżka do pliku jest prawidłowa.
+
+
+ZNACZNIKI MORFOSYNTAKTYCZNE
+
+Zestaw znaczników jest zbliżony do zestawu korpusu IPI (www.korpus.pl).
+
+ * adj - przymiotnik (np. "niemiecki")
+ * adjp - przymiotnik poprzyimkowy (np. "niemiecku")
+ * adv - przysłówek (np. "głupio")
+ * depr - forma deprecjatywna
+ * ger - rzeczownik odsłowny
+ * conj - spójnik
+ * num - liczebnik
+ * pact - imiesłów przymiotnikowy czynny
+ * pant - imiesłów przysłówkowy uprzedni
+ * pcon - imiesłów przysłówkowy współczesny
+ * ppas - imiesłów przymiotnikowy bierny
+ * ppron12 - zaimek nietrzecioosobowy
+ * ppron3 - zaimek trzecioosobowy
+ * pred - predykatyw (np. "trzeba")
+ * prep - przyimek
+ * siebie - zaimek "siebie"
+ * subst - rzeczownik
+ * verb - czasownik
+ * brev - skrót
+ * interj - wykrzyknienie
+ * xxx - jednostka obca
+
+Atrybuty podstawowych form:
+
+ * sg - liczba pojedyncza
+ * pl - liczba mnoga
+ * irreg - forma nieregularna (nierozpoznana dokładniej pod względem wartości atrybutów, np. subst:irreg)
+ * nom - mianownik
+ * gen - dopełniacz
+ * acc - biernik
+ * dat - celownik
+ * inst - narzędnik
+ * loc - miejscownik
+ * voc - wołacz
+ * pos - stopień równy
+ * comp - stopień wyższy
+ * sup - stopień najwyższy
+ * m1, m2, m3 - rodzaje męskie
+ * n1, n2 - rodzaje nijakie
+ * f - rodzaj żeński
+ * pri - pierwsza osoba
+ * sec - druga osoba
+ * tri - trzecia osoba
+ * aff - forma niezanegowana
+ * neg - forma zanegowana
+ * refl - forma zwrotna czasownika [nie występuje w znacznikach IPI]
+ * perf - czasownik dokonany
+ * imperf - czasownik niedokonany
+ * imperf.perf - czasownik, który może występować zarówno jako dokonany, jak i jako niedokonany
+ * nakc - forma nieakcentowana zaimka
+ * akc - forma akcentowana zaimka
+ * praep - forma poprzyimkowa
+ * npraep - forma niepoprzyimkowa
+ * ger - rzeczownik odsłowny
+ * imps - forma bezosobowa
+ * impt - tryb rozkazujÄ…cy
+ * inf - bezokolicznik
+ * fin - forma nieprzeszła
+ * bedzie - forma przyszła "być"
+ * praet - forma przeszła czasownika (pseudoimiesłów)
+ * pot - tryb przypuszczający [nie występuje w znacznikach IPI]
+ * nstd - forma niestandardowa, np. archaiczna [nie występuje w znacznikach IPI]
+ * pun - skrót z kropką [za NKJP]
+ * npun - bez kropki [za NKJP]
+
+W znacznikach Morfologika nie występuje i nie będzie występować znacznik aglt, a to ze względu na inną zasadę segmentacji wyrazów.
+
+Morfologik, (c) 2007-2013 Marcin Miłkowski. \ No newline at end of file
diff --git a/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.dict b/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.dict
new file mode 100644
index 0000000..459a733
--- /dev/null
+++ b/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.dict
Binary files differ
diff --git a/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.info b/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.info
new file mode 100644
index 0000000..c0a0a42
--- /dev/null
+++ b/morfologik-polish/src/main/resources/morfologik/dictionaries/pl.info
@@ -0,0 +1,36 @@
+#
+# Morfologik Polish dictionary.
+# Version: 2.0 PoliMorf
+# Copyright (c) 2013, Marcin Mi³kowski
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+fsa.dict.author=morfologik.blogspot.com
+fsa.dict.created=24 oct 2013 18:18:00
+fsa.dict.license=BSD. http://morfologik.blogspot.com
+
+fsa.dict.separator=+
+fsa.dict.encoding=UTF-8
+
+fsa.dict.uses-prefixes=true
+fsa.dict.uses-infixes=false
diff --git a/src-test/morfologik/stemming/PerformanceTest.java b/morfologik-polish/src/test/java/morfologik/stemming/PerformanceTest.java
index 3676d7d..d93216d 100644
--- a/src-test/morfologik/stemming/PerformanceTest.java
+++ b/morfologik-polish/src/test/java/morfologik/stemming/PerformanceTest.java
@@ -33,9 +33,9 @@ public class PerformanceTest extends AbstractBenchmark {
int i = 0;
for (ByteBuffer sequence : dict.fsa) {
testWords[i] = new String(sequence.array(), 0,
- sequence.remaining(), dict.metadata.encoding);
+ sequence.remaining(), dict.metadata.getEncoding());
testWords[i] = testWords[i].substring(0, testWords[i]
- .indexOf(dict.metadata.separator));
+ .indexOf(dict.metadata.getSeparator()));
i++;
if (i == testWords.length)
diff --git a/morfologik-polish/src/test/java/morfologik/stemming/PolishMorfologikStemmerTest.java b/morfologik-polish/src/test/java/morfologik/stemming/PolishMorfologikStemmerTest.java
new file mode 100644
index 0000000..2b1805b
--- /dev/null
+++ b/morfologik-polish/src/test/java/morfologik/stemming/PolishMorfologikStemmerTest.java
@@ -0,0 +1,141 @@
+package morfologik.stemming;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.*;
+
+import org.junit.Ignore;
+import org.junit.Test;
+
+/*
+ *
+ */
+public class PolishMorfologikStemmerTest {
+ /* */
+ @Test
+ public void testLexemes() throws IOException {
+ PolishStemmer s = new PolishStemmer();
+
+ assertEquals("żywotopisarstwo", stem(s, "żywotopisarstwie")[0]);
+ assertEquals("abradować", stem(s, "abradowałoby")[0]);
+
+ assertArrayEquals(new String[] { "żywotopisarstwo", "subst:sg:loc:n2" },
+ stem(s, "żywotopisarstwie"));
+ assertArrayEquals(new String[] { "bazia", "subst:pl:inst:f" }, stem(s,
+ "baziami"));
+
+ // This word is not in the dictionary.
+ assertNoStemFor(s, "martygalski");
+ }
+
+ /* */
+ @Test
+ @Ignore
+ public void listUniqueTags() throws IOException {
+ HashSet<String> forms = new HashSet<String>();
+ for (WordData wd : new PolishStemmer()) {
+ final CharSequence chs = wd.getTag();
+ if (chs == null) {
+ System.err.println("Missing tag for: " + wd.getWord());
+ continue;
+ }
+ forms.add(chs.toString());
+ }
+
+ for (String s : new TreeSet<String>(forms)) {
+ System.out.println(s);
+ }
+ }
+
+ /* */
+ @Test
+ public void testWordDataFields() throws IOException {
+ final IStemmer s = new PolishStemmer();
+
+ final String word = "liga";
+ final List<WordData> response = s.lookup(word);
+ assertEquals(2, response.size());
+
+ final HashSet<String> stems = new HashSet<String>();
+ final HashSet<String> tags = new HashSet<String>();
+ for (WordData wd : response) {
+ stems.add(wd.getStem().toString());
+ tags.add(wd.getTag().toString());
+ assertSame(word, wd.getWord());
+ }
+ assertTrue(stems.contains("ligać"));
+ assertTrue(stems.contains("liga"));
+ assertTrue(tags.contains("subst:sg:nom:f"));
+ assertTrue(tags.contains("verb:fin:sg:ter:imperf:nonrefl+verb:fin:sg:ter:imperf:refl.nonrefl"));
+
+ // Repeat to make sure we get the same values consistently.
+ for (WordData wd : response) {
+ stems.contains(wd.getStem().toString());
+ tags.contains(wd.getTag().toString());
+ }
+
+ final String ENCODING = "UTF-8";
+
+ // Run the same consistency check for the returned buffers.
+ final ByteBuffer temp = ByteBuffer.allocate(100);
+ for (WordData wd : response) {
+ // Buffer should be copied.
+ final ByteBuffer copy = wd.getStemBytes(null);
+ final String stem = new String(copy.array(), copy.arrayOffset()
+ + copy.position(), copy.remaining(), ENCODING);
+ // The buffer should be present in stems set.
+ assertTrue(stem, stems.contains(stem));
+ // Buffer large enough to hold the contents.
+ temp.clear();
+ assertSame(temp, wd.getStemBytes(temp));
+ // The copy and the clone should be identical.
+ assertEquals(0, copy.compareTo(temp));
+ }
+
+ for (WordData wd : response) {
+ // Buffer should be copied.
+ final ByteBuffer copy = wd.getTagBytes(null);
+ final String tag = new String(copy.array(), copy.arrayOffset()
+ + copy.position(), copy.remaining(), ENCODING);
+ // The buffer should be present in tags set.
+ assertTrue(tag, tags.contains(tag));
+ // Buffer large enough to hold the contents.
+ temp.clear();
+ assertSame(temp, wd.getTagBytes(temp));
+ // The copy and the clone should be identical.
+ assertEquals(0, copy.compareTo(temp));
+ }
+
+ for (WordData wd : response) {
+ // Buffer should be copied.
+ final ByteBuffer copy = wd.getWordBytes(null);
+ assertNotNull(copy);
+ assertEquals(0, copy.compareTo(ByteBuffer.wrap(word
+ .getBytes(ENCODING))));
+ }
+ }
+
+ /* */
+ public static String asString(CharSequence s) {
+ if (s == null)
+ return null;
+ return s.toString();
+ }
+
+ /* */
+ public static String[] stem(IStemmer s, String word) {
+ ArrayList<String> result = new ArrayList<String>();
+ for (WordData wd : s.lookup(word)) {
+ result.add(asString(wd.getStem()));
+ result.add(asString(wd.getTag()));
+ }
+ return result.toArray(new String[result.size()]);
+ }
+
+ /* */
+ public static void assertNoStemFor(IStemmer s, String word) {
+ assertArrayEquals(new String[] {}, stem(s, word));
+ }
+}
diff --git a/morfologik-speller/pom.xml b/morfologik-speller/pom.xml
new file mode 100644
index 0000000..ac6ecf2
--- /dev/null
+++ b/morfologik-speller/pom.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-parent</artifactId>
+ <version>1.9.0</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>morfologik-speller</artifactId>
+ <packaging>jar</packaging>
+
+ <name>Morfologik Speller</name>
+ <description>Morfologik Speller</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-stemming</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.easytesting</groupId>
+ <artifactId>fest-assert-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <defaultGoal>install</defaultGoal>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/morfologik-speller/src/main/java/morfologik/speller/HMatrix.java b/morfologik-speller/src/main/java/morfologik/speller/HMatrix.java
new file mode 100644
index 0000000..848f24e
--- /dev/null
+++ b/morfologik-speller/src/main/java/morfologik/speller/HMatrix.java
@@ -0,0 +1,100 @@
+package morfologik.speller;
+
+/**
+ * Keeps track of already computed values of edit distance.<br/>
+ * Remarks: To save space, the matrix is kept in a vector.
+ */
+public class HMatrix {
+ private int[] p; /* the vector */
+ private int rowLength; /* row length of matrix */
+ int columnHeight; /* column height of matrix */
+ int editDistance; /* edit distance */
+
+ /**
+ * Allocates memory and initializes matrix (constructor).
+ *
+ * @param distance (int) max edit distance allowed for
+ * candidates;
+ * @param maxLength (int) max length of words.
+ *
+ * Remarks: See Oflazer. To save space, the matrix is
+ * stored as a vector. To save time, additional rows and
+ * columns are added. They are initialized to their distance in
+ * the matrix, so that no bound checking is necessary during
+ * access.
+ */
+ public HMatrix(final int distance, final int maxLength) {
+ rowLength = maxLength + 2;
+ columnHeight = 2 * distance + 3;
+ editDistance = distance;
+ final int size = rowLength * columnHeight;
+ p = new int[size];
+ // Initialize edges of the diagonal band to distance + 1 (i.e.
+ // distance too big)
+ for (int i = 0; i < rowLength - distance - 1; i++) {
+ p[i] = distance + 1; // H(distance + j, j) = distance + 1
+ p[size - i - 1] = distance + 1; // H(i, distance + i) = distance
+ // + 1
+ }
+ // Initialize items H(i,j) with at least one index equal to zero to
+ // |i - j|
+ for (int j = 0; j < 2 * distance + 1; j++) {
+ p[j * rowLength] = distance + 1 - j; // H(i=0..distance+1,0)=i
+ // FIXME: fordistance == 2 we exceed the array size here.
+ // there's a bug in spell.cc, Jan Daciuk has been notified about it.
+ p[Math.min(p.length - 1, (j + distance + 1) * rowLength + j)] = j; // H(0,j=0..distance+1)=j
+ }
+ }
+
+ /**
+ * Provide an item of hMatrix indexed by indices.
+ *
+ * @param i
+ * - (int) row number;
+ * @param j
+ * - (int) column number.
+ * @return Item H[i][j] <br/>
+ * Remarks: H matrix is really simulated. What is needed is only
+ * 2 * edit_distance + 1 wide band around the diagonal. In fact
+ * this diagonal has been pushed up to the upper border of the
+ * matrix.
+ *
+ * The matrix in the vector looks likes this:
+ *
+ * <pre>
+ * +---------------------+
+ * 0 |#####################| j=i-e-1
+ * 1 | | j=i-e
+ * : :
+ * e+1 | | j=i-1
+ * +---------------------+
+ * e+2 | | j=i
+ * +---------------------+
+ * e+3 | | j=i+1
+ * : :
+ * 2e+2| | j=i+e
+ * 2e+3|#####################| j=i+e+1
+ * +---------------------+
+ * </pre>
+ */
+ public int get(final int i, final int j) {
+ return p[(j - i + editDistance + 1) * rowLength + j];
+ }
+
+ /**
+ * Set an item in hMatrix.
+ *
+ * @param i
+ * - (int) row number;
+ * @param j
+ * - (int) column number;
+ * @param val
+ * - (int) value to put there.
+ *
+ * No checking for i & j is done. They must be correct.
+ */
+ public void set(final int i, final int j, final int val) {
+ p[(j - i + editDistance + 1) * rowLength + j] = val;
+ }
+
+} \ No newline at end of file
diff --git a/morfologik-speller/src/main/java/morfologik/speller/Speller.java b/morfologik-speller/src/main/java/morfologik/speller/Speller.java
new file mode 100644
index 0000000..f4ee083
--- /dev/null
+++ b/morfologik-speller/src/main/java/morfologik/speller/Speller.java
@@ -0,0 +1,920 @@
+package morfologik.speller;
+
+import static morfologik.fsa.MatchResult.EXACT_MATCH;
+import static morfologik.fsa.MatchResult.SEQUENCE_IS_A_PREFIX;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.CharacterCodingException;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import java.nio.charset.CoderResult;
+import java.text.Normalizer;
+import java.text.Normalizer.Form;
+import java.util.*;
+
+import morfologik.fsa.FSA;
+import morfologik.fsa.FSAFinalStatesIterator;
+import morfologik.fsa.FSATraversal;
+import morfologik.fsa.MatchResult;
+import morfologik.stemming.Dictionary;
+import morfologik.stemming.DictionaryMetadata;
+import morfologik.util.BufferUtils;
+
+/**
+ * Finds spelling suggestions. Implements
+ * <a href="http://acl.ldc.upenn.edu/J/J96/J96-1003.pdf">K. Oflazer's algorithm</a>.
+ * See Jan Daciuk's <code>s_fsa</code> package.
+ */
+public class Speller {
+
+ /**
+ * Maximum length of the word to be checked.
+ */
+ public static final int MAX_WORD_LENGTH = 120;
+ static final int FREQ_RANGES = 'Z' - 'A' + 1;
+ static final int FIRST_RANGE_CODE = 'A'; // less frequent words
+
+ //FIXME: this is an upper limit for replacement searches, we need
+ //proper tree traversal instead of generation of all possible candidates
+ static final int UPPER_SEARCH_LIMIT = 15;
+ private static final int MIN_WORD_LENGTH = 4;
+ private static final int MAX_RECURSION_LEVEL = 6;
+
+ private final int editDistance;
+ private int effectEditDistance; // effective edit distance
+
+ private final HMatrix hMatrix;
+
+ private char[] candidate; /* current replacement */
+ private int candLen;
+ private int wordLen; /* length of word being processed */
+ private char[] wordProcessed; /* word being processed */
+
+ private Map<Character, List<char[]>> replacementsAnyToOne = new HashMap<Character, List<char[]>>();
+ private Map<String, List<char[]>> replacementsAnyToTwo = new HashMap<String, List<char[]>>();
+ private Map<String, List<String>> replacementsTheRest = new HashMap<String, List<String>>();
+
+ /**
+ * List of candidate strings, including same additional data such as
+ * edit distance from the original word.
+ */
+ private final List<CandidateData> candidates = new ArrayList<CandidateData>();
+
+ private boolean containsSeparators = true;
+
+ /**
+ * Internal reusable buffer for encoding words into byte arrays using
+ * {@link #encoder}.
+ */
+ private ByteBuffer byteBuffer = ByteBuffer.allocate(MAX_WORD_LENGTH);
+
+ /**
+ * Internal reusable buffer for encoding words into byte arrays using
+ * {@link #encoder}.
+ */
+ private CharBuffer charBuffer = CharBuffer.allocate(MAX_WORD_LENGTH);
+
+ /**
+ * Reusable match result.
+ */
+ private final MatchResult matchResult = new MatchResult();
+
+ /**
+ * Features of the compiled dictionary.
+ *
+ * @see DictionaryMetadata
+ */
+ private final DictionaryMetadata dictionaryMetadata;
+
+ /**
+ * Charset encoder for the FSA.
+ */
+ private final CharsetEncoder encoder;
+
+ /**
+ * Charset decoder for the FSA.
+ */
+ private final CharsetDecoder decoder;
+
+ /** An FSA used for lookups. */
+ private final FSATraversal matcher;
+
+ /** FSA's root node. */
+ private final int rootNode;
+
+ /**
+ * The FSA we are using.
+ */
+ private final FSA fsa;
+
+ /** An iterator for walking along the final states of {@link #fsa}. */
+ private final FSAFinalStatesIterator finalStatesIterator;
+
+ public Speller(final Dictionary dictionary) {
+ this(dictionary, 1);
+ }
+
+ public Speller(final Dictionary dictionary, final int editDistance) {
+ this.editDistance = editDistance;
+ hMatrix = new HMatrix(editDistance, MAX_WORD_LENGTH);
+
+ this.dictionaryMetadata = dictionary.metadata;
+ this.rootNode = dictionary.fsa.getRootNode();
+ this.fsa = dictionary.fsa;
+ this.matcher = new FSATraversal(fsa);
+ this.finalStatesIterator = new FSAFinalStatesIterator(fsa, rootNode);
+
+ if (rootNode == 0) {
+ throw new IllegalArgumentException(
+ "Dictionary must have at least the root node.");
+ }
+
+ if (dictionaryMetadata == null) {
+ throw new IllegalArgumentException(
+ "Dictionary metadata must not be null.");
+ }
+
+ encoder = dictionaryMetadata.getEncoder();
+ decoder = dictionaryMetadata.getDecoder();
+
+ // Multibyte separator will result in an exception here.
+ dictionaryMetadata.getSeparatorAsChar();
+
+ this.createReplacementsMaps();
+ }
+
+ private void createReplacementsMaps() {
+ for (Map.Entry<String, List<String>> entry : dictionaryMetadata
+ .getReplacementPairs().entrySet()) {
+ for (String s : entry.getValue()) {
+ // replacements any to one
+ // the new key is the target of the replacement pair
+ if (s.length() == 1) {
+ if (!replacementsAnyToOne.containsKey(s.charAt(0))) {
+ List<char[]> charList = new ArrayList<char[]>();
+ charList.add(entry.getKey().toCharArray());
+ replacementsAnyToOne.put(s.charAt(0), charList);
+ } else {
+ replacementsAnyToOne.get(s.charAt(0)).add(
+ entry.getKey().toCharArray());
+ }
+ }
+ // replacements any to two
+ // the new key is the target of the replacement pair
+ else if (s.length() == 2) {
+ if (!replacementsAnyToTwo.containsKey(s)) {
+ List<char[]> charList = new ArrayList<char[]>();
+ charList.add(entry.getKey().toCharArray());
+ replacementsAnyToTwo.put(s, charList);
+ } else {
+ replacementsAnyToTwo.get(s).add(entry.getKey().toCharArray());
+ }
+ } else {
+ if (!replacementsTheRest.containsKey(entry.getKey())) {
+ List<String> charList = new ArrayList<String>();
+ charList.add(s);
+ replacementsTheRest.put(entry.getKey(), charList);
+ } else {
+ replacementsTheRest.get(entry.getKey()).add(s);
+ }
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Encode a character sequence into a byte buffer, optionally expanding
+ * buffer.
+ */
+ private ByteBuffer charsToBytes(final CharBuffer chars, ByteBuffer bytes) {
+ bytes.clear();
+ final int maxCapacity = (int) (chars.remaining() * encoder.maxBytesPerChar());
+ if (bytes.capacity() <= maxCapacity) {
+ bytes = ByteBuffer.allocate(maxCapacity);
+ }
+ chars.mark();
+ encoder.reset();
+ if (encoder.encode(chars, bytes, true).isError()) {
+ // in the case of encoding errors, clear the buffer
+ bytes.clear();
+ }
+ bytes.flip();
+ chars.reset();
+ return bytes;
+ }
+
+ private ByteBuffer charSequenceToBytes(final CharSequence word) {
+ // Encode word characters into bytes in the same encoding as the FSA's.
+ charBuffer.clear();
+ charBuffer = BufferUtils.ensureCapacity(charBuffer, word.length());
+ for (int i = 0; i < word.length(); i++) {
+ final char chr = word.charAt(i);
+ charBuffer.put(chr);
+ }
+ charBuffer.flip();
+ byteBuffer = charsToBytes(charBuffer, byteBuffer);
+ return byteBuffer;
+ }
+
+ /**
+ * Checks whether the word is misspelled, by performing a series of checks according to
+ * properties of the dictionary.
+ *
+ * If the flag <code>fsa.dict.speller.ignore-punctuation</code> is set, then all non-alphabetic
+ * characters are considered to be correctly spelled.
+ *
+ * If the flag <code>fsa.dict.speller.ignore-numbers</code> is set, then all words containing decimal
+ * digits are considered to be correctly spelled.
+ *
+ * If the flag <code>fsa.dict.speller.ignore-camel-case</code> is set, then all CamelCase words are
+ * considered to be correctly spelled.
+ *
+ * If the flag <code>fsa.dict.speller.ignore-all-uppercase</code> is set, then all alphabetic words composed
+ * of only uppercase characters are considered to be correctly spelled.
+ *
+ * Otherwise, the word is checked in the dictionary. If the test fails, and the dictionary does not
+ * perform any case conversions (as set by <code>fsa.dict.speller.convert-case</code> flag), then the method
+ * returns false. In case of case conversions, it is checked whether a non-mixed case word is found in its
+ * lowercase version in the dictionary, and for all-uppercase words, whether the word is found in the dictionary
+ * with the initial uppercase letter.
+ *
+ * @param word - the word to be checked
+ * @return true if the word is misspelled
+ **/
+ public boolean isMisspelled(final String word) {
+ // dictionaries usually do not contain punctuation
+ String wordToCheck = word;
+ if (!dictionaryMetadata.getInputConversionPairs().isEmpty()) {
+ wordToCheck = Dictionary.convertText(word,
+ dictionaryMetadata.getInputConversionPairs()).toString();
+ }
+ boolean isAlphabetic = wordToCheck.length() != 1 || isAlphabetic(wordToCheck.charAt(0));
+ return wordToCheck.length() > 0
+ && (!dictionaryMetadata.isIgnoringPunctuation() || isAlphabetic)
+ && (!dictionaryMetadata.isIgnoringNumbers() || containsNoDigit(wordToCheck))
+ && !(dictionaryMetadata.isIgnoringCamelCase() && isCamelCase(wordToCheck))
+ && !(dictionaryMetadata.isIgnoringAllUppercase() && isAlphabetic && isAllUppercase(wordToCheck))
+ && !isInDictionary(wordToCheck)
+ && (!dictionaryMetadata.isConvertingCase() ||
+ !(!isMixedCase(wordToCheck) &&
+ (isInDictionary(wordToCheck.toLowerCase(dictionaryMetadata.getLocale()))
+ || isAllUppercase(wordToCheck) && isInDictionary(initialUppercase(wordToCheck)))));
+ }
+
+ private CharSequence initialUppercase(final String wordToCheck) {
+ return wordToCheck.substring(0, 1) +
+ wordToCheck.substring(1).
+ toLowerCase(dictionaryMetadata.getLocale());
+ }
+
+ /**
+ * Test whether the word is found in the dictionary.
+ * @param word the word to be tested
+ * @return True if it is found.
+ */
+ public boolean isInDictionary(final CharSequence word) {
+ byteBuffer = charSequenceToBytes(word);
+
+ // Try to find a partial match in the dictionary.
+ final MatchResult match = matcher.match(matchResult,
+ byteBuffer.array(), 0, byteBuffer.remaining(), rootNode);
+
+ if (match.kind == EXACT_MATCH) {
+ containsSeparators = false;
+ return true;
+ }
+
+ return containsSeparators
+ && match.kind == SEQUENCE_IS_A_PREFIX
+ && byteBuffer.remaining() > 0
+ && fsa.getArc(match.node, dictionaryMetadata.getSeparator()) != 0;
+ }
+
+ /**
+ * Get the frequency value for a word form.
+ * It is taken from the first entry with this word form.
+ * @param word the word to be tested
+ * @return frequency value in range: 0..FREQ_RANGE-1 (0: less frequent).
+ */
+
+ public int getFrequency(final CharSequence word) {
+ if (!dictionaryMetadata.isFrequencyIncluded()) {
+ return 0;
+ }
+ final byte separator = dictionaryMetadata.getSeparator();
+ byteBuffer = charSequenceToBytes(word);
+ final MatchResult match = matcher.match(matchResult, byteBuffer.array(), 0,
+ byteBuffer.remaining(), rootNode);
+ if (match.kind == SEQUENCE_IS_A_PREFIX) {
+ final int arc = fsa.getArc(match.node, separator);
+ if (arc != 0 && !fsa.isArcFinal(arc)) {
+ finalStatesIterator.restartFrom(fsa.getEndNode(arc));
+ if (finalStatesIterator.hasNext()) {
+ final ByteBuffer bb = finalStatesIterator.next();
+ final byte[] ba = bb.array();
+ final int bbSize = bb.remaining();
+ //the last byte contains the frequency after a separator
+ return ba[bbSize - 1] - FIRST_RANGE_CODE;
+ }
+ }
+ }
+ return 0;
+ }
+
+ /**
+ * Propose suggestions for misspelled run-on words. This algorithm is inspired by
+ * spell.cc in s_fsa package by Jan Daciuk.
+ *
+ * @param original The original misspelled word.
+ * @return The list of suggested pairs, as space-concatenated strings.
+ */
+ public List<String> replaceRunOnWords(final String original) {
+ final List<String> candidates = new ArrayList<String>();
+ if (!isInDictionary(Dictionary.convertText(original,
+ dictionaryMetadata.getInputConversionPairs()).toString())
+ && dictionaryMetadata.isSupportingRunOnWords()) {
+ for (int i = 2; i < original.length(); i++) {
+ // chop from left to right
+ final CharSequence firstCh = original.subSequence(0, i);
+ if (isInDictionary(firstCh) &&
+ isInDictionary(original.subSequence(i, original.length()))) {
+ if (!dictionaryMetadata.getOutputConversionPairs().isEmpty()) {
+ candidates.add(firstCh + " " + original.subSequence(i, original.length()));
+ } else {
+ candidates.add(
+ Dictionary.convertText(firstCh + " " + original.subSequence(i, original.length()),
+ dictionaryMetadata.getOutputConversionPairs()).toString()
+ );
+ }
+ }
+ }
+ }
+ return candidates;
+ }
+
+ /**
+ * Find suggestions by using K. Oflazer's algorithm. See Jan Daciuk's s_fsa
+ * package, spell.cc for further explanation.
+ *
+ * @param w
+ * The original misspelled word.
+ * @return A list of suggested replacements.
+ * @throws CharacterCodingException
+ */
+ public List<String> findReplacements(final String w)
+ throws CharacterCodingException {
+ String word = w;
+ if (!dictionaryMetadata.getInputConversionPairs().isEmpty()) {
+ word = Dictionary.convertText(w,
+ dictionaryMetadata.getInputConversionPairs()).toString();
+ }
+ candidates.clear();
+ if (word.length() > 0 && word.length() < MAX_WORD_LENGTH && !isInDictionary(word)) {
+ List<String> wordsToCheck = new ArrayList<String>();
+ if (replacementsTheRest != null
+ && word.length() > MIN_WORD_LENGTH) {
+ for (final String wordChecked : getAllReplacements(word, 0, 0)) {
+ boolean found = false;
+ if (isInDictionary(wordChecked)) {
+ candidates.add(new CandidateData(wordChecked, 0));
+ found = true;
+ } else if (dictionaryMetadata.isConvertingCase()) {
+ String lowerWord = wordChecked.toLowerCase(dictionaryMetadata.getLocale());
+ String upperWord = wordChecked.toUpperCase(dictionaryMetadata.getLocale());
+ if (isInDictionary(lowerWord)) {
+ //add the word as it is in the dictionary, not mixed-case versions of it
+ candidates.add(new CandidateData(lowerWord, 0));
+ found = true;
+ }
+ if (isInDictionary(upperWord)) {
+ candidates.add(new CandidateData(upperWord, 0));
+ found = true;
+ }
+ if (lowerWord.length() > 1) {
+ String firstupperWord = Character.toUpperCase(lowerWord.charAt(0))
+ + lowerWord.substring(1);
+ if (isInDictionary(firstupperWord)) {
+ candidates.add(new CandidateData(firstupperWord, 0));
+ found = true;
+ }
+ }
+ }
+ if (!found) {
+ wordsToCheck.add(wordChecked);
+ }
+ }
+ } else {
+ wordsToCheck.add(word);
+ }
+
+ //If at least one candidate was found with the replacement pairs (which are usual errors),
+ //probably there is no need for more candidates
+ if (candidates.isEmpty()) {
+ int i = 1;
+ for (final String wordChecked : wordsToCheck) {
+ i++;
+ if (i > UPPER_SEARCH_LIMIT) { // for performance reasons, do not search too deeply
+ break;
+ }
+ wordProcessed = wordChecked.toCharArray();
+ wordLen = wordProcessed.length;
+ if (wordLen < MIN_WORD_LENGTH && i > 2) { // three-letter replacements make little sense anyway
+ break;
+ }
+ candidate = new char[MAX_WORD_LENGTH];
+ candLen = candidate.length;
+ effectEditDistance = wordLen <= editDistance ? wordLen - 1 : editDistance;
+ charBuffer = BufferUtils.ensureCapacity(charBuffer, MAX_WORD_LENGTH);
+ byteBuffer = BufferUtils.ensureCapacity(byteBuffer, MAX_WORD_LENGTH);
+ charBuffer.clear();
+ byteBuffer.clear();
+ final byte[] prevBytes = new byte[0];
+ findRepl(0, fsa.getRootNode(), prevBytes, 0, 0);
+ }
+ }
+ }
+
+ Collections.sort(candidates);
+
+ // Use a linked set to avoid duplicates and preserve the ordering of candidates.
+ final Set<String> candStringSet = new LinkedHashSet<String>();
+ for (final CandidateData cd : candidates) {
+ candStringSet.add(Dictionary.convertText(cd.getWord(),
+ dictionaryMetadata.getOutputConversionPairs()).toString());
+ }
+ final List<String> candStringList = new ArrayList<String>(candStringSet.size());
+ candStringList.addAll(candStringSet);
+ return candStringList;
+ }
+
+ private void findRepl(final int depth, final int node, final byte[] prevBytes,
+ final int wordIndex, final int candIndex) {
+ // char separatorChar = dictionaryMetadata.getSeparatorAsChar();
+ int dist = 0;
+ for (int arc = fsa.getFirstArc(node); arc != 0; arc = fsa.getNextArc(arc)) {
+ byteBuffer = BufferUtils.ensureCapacity(byteBuffer, prevBytes.length + 1);
+ byteBuffer.clear();
+ byteBuffer.put(prevBytes);
+ byteBuffer.put(fsa.getArcLabel(arc));
+ final int bufPos = byteBuffer.position();
+ byteBuffer.flip();
+ decoder.reset();
+ final CoderResult c = decoder.decode(byteBuffer, charBuffer, true);
+ if (c.isMalformed()) { // assume that only valid
+ // encodings are there
+ final byte[] prev = new byte[bufPos];
+ byteBuffer.position(0);
+ byteBuffer.get(prev);
+ if (!fsa.isArcTerminal(arc)) {
+ findRepl(depth, fsa.getEndNode(arc), prev, wordIndex, candIndex); // note: depth is not incremented
+ }
+ byteBuffer.clear();
+ } else if (!c.isError()) { // unmappable characters are silently discarded
+ charBuffer.flip();
+ candidate[candIndex] = charBuffer.get();
+ charBuffer.clear();
+ byteBuffer.clear();
+
+ int lengthReplacement;
+ // replacement "any to two"
+ if ((lengthReplacement = matchAnyToTwo(wordIndex, candIndex)) > 0) {
+ if (isEndOfCandidate(arc, wordIndex)) { //the replacement takes place at the end of the candidate
+ if (Math.abs(wordLen - 1 - (wordIndex + lengthReplacement - 2)) > 0) { // there is an extra letter in the word after the replacement
+ dist++;
+ }
+ addCandidate(candIndex, dist);
+
+ }
+ if (isArcNotTerminal(arc, candIndex)) {
+ int x = hMatrix.get(depth, depth);
+ hMatrix.set(depth, depth, hMatrix.get(depth - 1, depth - 1));
+ findRepl(Math.max(0, depth), fsa.getEndNode(arc), new byte[0], wordIndex + lengthReplacement - 1, candIndex + 1);
+ hMatrix.set(depth, depth, x);
+
+ }
+ }
+ //replacement "any to one"
+ if ((lengthReplacement = matchAnyToOne(wordIndex, candIndex)) > 0) {
+ if (isEndOfCandidate(arc, wordIndex)) { //the replacement takes place at the end of the candidate
+ if (Math.abs(wordLen - 1 - (wordIndex + lengthReplacement - 1)) > 0) { // there is an extra letter in the word after the replacement
+ dist++;
+ }
+ addCandidate(candIndex, dist);
+ }
+ if (isArcNotTerminal(arc,candIndex)) {
+ findRepl(depth, fsa.getEndNode(arc), new byte[0], wordIndex + lengthReplacement, candIndex + 1);
+ }
+ }
+ //general
+ if (cuted(depth, wordIndex, candIndex) <= effectEditDistance) {
+ if ((isEndOfCandidate(arc, wordIndex))
+ && (dist = ed(wordLen - 1 - (wordIndex - depth), depth, wordLen - 1, candIndex))
+ <= effectEditDistance) {
+ addCandidate(candIndex, dist);
+ }
+ if (isArcNotTerminal(arc,candIndex)) {
+ findRepl(depth + 1, fsa.getEndNode(arc), new byte[0], wordIndex + 1, candIndex + 1);
+ }
+ }
+
+ }
+ }
+ }
+
+ private boolean isArcNotTerminal(final int arc, final int candIndex) {
+ return !fsa.isArcTerminal(arc)
+ && !(containsSeparators && candidate[candIndex] == dictionaryMetadata.getSeparatorAsChar());
+ }
+
+ private boolean isEndOfCandidate(final int arc, final int wordIndex) {
+ return (fsa.isArcFinal(arc) || isBeforeSeparator(arc))
+ //candidate has proper length
+ && (Math.abs(wordLen - 1 - (wordIndex)) <= effectEditDistance);
+ }
+
+ private boolean isBeforeSeparator(final int arc) {
+ if (containsSeparators) {
+ final int arc1 = fsa.getArc(fsa.getEndNode(arc), dictionaryMetadata.getSeparator());
+ return arc1 != 0 && !fsa.isArcTerminal(arc1);
+ }
+ return false;
+ }
+
+ private void addCandidate(final int depth, final int dist) {
+ candidates.add(new CandidateData(String.valueOf(candidate, 0, depth + 1), dist));
+ }
+
+ /**
+ * Calculates edit distance.
+ *
+ * @param i length of first word (here: misspelled) - 1;
+ * @param j length of second word (here: candidate) - 1.
+ * @return Edit distance between the two words. Remarks: See Oflazer.
+ */
+ public int ed(final int i, final int j,
+ final int wordIndex, final int candIndex) {
+ int result;
+ int a, b, c;
+
+ if (areEqual(wordProcessed[wordIndex], candidate[candIndex])) {
+ // last characters are the same
+ result = hMatrix.get(i, j);
+ } else if (wordIndex > 0 && candIndex > 0 && wordProcessed[wordIndex] == candidate[candIndex - 1]
+ && wordProcessed[wordIndex - 1] == candidate[candIndex]) {
+ // last two characters are transposed
+ a = hMatrix.get(i - 1, j - 1); // transposition, e.g. ababab, ababba
+ b = hMatrix.get(i + 1, j); // deletion, e.g. abab, aba
+ c = hMatrix.get(i, j + 1); // insertion e.g. aba, abab
+ result = 1 + min(a, b, c);
+ } else {
+ // otherwise
+ a = hMatrix.get(i, j); // replacement, e.g. ababa, ababb
+ b = hMatrix.get(i + 1, j); // deletion, e.g. ab, a
+ c = hMatrix.get(i, j + 1); // insertion e.g. a, ab
+ result = 1 + min(a, b, c);
+ }
+
+ hMatrix.set(i + 1, j + 1, result);
+ return result;
+ }
+
+ // by Jaume Ortola
+ private boolean areEqual(final char x, final char y) {
+ if (x == y) {
+ return true;
+ }
+ if (dictionaryMetadata.getEquivalentChars() != null &&
+ dictionaryMetadata.getEquivalentChars().containsKey(x)
+ && dictionaryMetadata.getEquivalentChars().get(x).contains(y)) {
+ return true;
+ }
+ if (dictionaryMetadata.isIgnoringDiacritics()) {
+ String xn = Normalizer.normalize(Character.toString(x), Form.NFD);
+ String yn = Normalizer.normalize(Character.toString(y), Form.NFD);
+ if (xn.charAt(0) == yn.charAt(0)) { // avoid case conversion, if possible
+ return true;
+ }
+ if (dictionaryMetadata.isConvertingCase()) {
+ //again case conversion only when needed -- we
+ // do not need String.lowercase because we only check
+ // single characters, so a cheaper method is enough
+ if (Character.isLetter(xn.charAt(0))){
+ boolean testNeeded = Character.isLowerCase(xn.charAt(0))
+ != Character.isLowerCase(yn.charAt(0));
+ if (testNeeded) {
+ return Character.toLowerCase(xn.charAt(0)) ==
+ Character.toLowerCase(yn.charAt(0));
+ }
+ }
+ }
+ return xn.charAt(0) == yn.charAt(0);
+ }
+ return false;
+ }
+
+ /**
+ * Calculates cut-off edit distance.
+ *
+ * @param depth current length of candidates.
+ * @return Cut-off edit distance. Remarks: See Oflazer.
+ */
+
+ public int cuted(final int depth, final int wordIndex, final int candIndex) {
+ final int l = Math.max(0, depth - effectEditDistance); // min chars from word to consider - 1
+ final int u = Math.min(wordLen - 1 - (wordIndex - depth), depth + effectEditDistance); // max chars from word to
+ // consider - 1
+ int minEd = effectEditDistance + 1; // what is to be computed
+ int wi = wordIndex + l - depth;
+ int d;
+
+ for (int i = l; i <= u; i++, wi++) {
+ if ((d = ed(i, depth, wi, candIndex)) < minEd) {
+ minEd = d;
+ }
+ }
+ return minEd;
+ }
+
+ // Match the last letter of the candidate against two or more letters of the word.
+ private int matchAnyToOne(final int wordIndex, final int candIndex) {
+ if (replacementsAnyToOne.containsKey(candidate[candIndex])) {
+ for (final char[] rep : replacementsAnyToOne.get(candidate[candIndex])) {
+ int i = 0;
+ while (i < rep.length && (wordIndex + i) < wordLen
+ && rep[i] == wordProcessed[wordIndex + i]) {
+ i++;
+ }
+ if (i==rep.length) {
+ return i;
+ }
+ }
+ }
+ return 0;
+ }
+
+ private int matchAnyToTwo(final int wordIndex, final int candIndex) {
+ if (candIndex > 0 && candIndex < candidate.length
+ && wordIndex > 0) {
+ char[] twoChar = {candidate[candIndex - 1],candidate[candIndex]};
+ String sTwoChar= new String(twoChar);
+ if (replacementsAnyToTwo.containsKey(sTwoChar)) {
+ for (final char[] rep : replacementsAnyToTwo.get(sTwoChar)) {
+ if (rep.length == 2 && wordIndex < wordLen
+ && candidate[candIndex - 1] == wordProcessed[wordIndex - 1]
+ && candidate[candIndex] == wordProcessed[wordIndex]) {
+ return 0; //unnecessary replacements
+ }
+ int i = 0;
+ while (i < rep.length && (wordIndex - 1 + i) < wordLen
+ && rep[i] == wordProcessed[wordIndex - 1 + i] ) {
+ i++;
+ }
+ if (i==rep.length) {
+ return i;
+ }
+ }
+ }
+ }
+ return 0;
+ }
+
+
+ private static int min(final int a, final int b, final int c) {
+ return Math.min(a, Math.min(b, c));
+ }
+
+ /**
+ * Copy-paste of Character.isAlphabetic() (needed as we require only 1.6)
+ *
+ * @param codePoint The input character.
+ * @return True if the character is a Unicode alphabetic character.
+ */
+ static boolean isAlphabetic(final int codePoint) {
+ return ((1 << Character.UPPERCASE_LETTER
+ | 1 << Character.LOWERCASE_LETTER
+ | 1 << Character.TITLECASE_LETTER
+ | 1 << Character.MODIFIER_LETTER
+ | 1 << Character.OTHER_LETTER
+ | 1 << Character.LETTER_NUMBER) >> Character.getType(codePoint) & 1) != 0;
+ }
+
+ /**
+ * Checks whether a string contains a digit. Used for ignoring words with
+ * numbers
+ * @param s Word to be checked.
+ * @return True if there is a digit inside the word.
+ */
+ static boolean containsNoDigit(final String s) {
+ for (int k = 0; k < s.length(); k++) {
+ if (Character.isDigit(s.charAt(k))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Returns true if <code>str</code> is made up of all-uppercase characters
+ * (ignoring characters for which no upper-/lowercase distinction exists).
+ */
+ boolean isAllUppercase(final String str) {
+ for(int i = 0; i < str.length(); i++) {
+ char c = str.charAt(i);
+ if(Character.isLetter(c) && Character.isLowerCase(c)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Returns true if <code>str</code> is made up of all-lowercase characters
+ * (ignoring characters for which no upper-/lowercase distinction exists).
+ */
+ boolean isNotAllLowercase(final String str) {
+ for(int i = 0; i < str.length(); i++) {
+ char c = str.charAt(i);
+ if(Character.isLetter(c) && !Character.isLowerCase(c)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @param str input string
+ */
+ boolean isNotCapitalizedWord(final String str) {
+ if (isNotEmpty(str) && Character.isUpperCase(str.charAt(0))) {
+ for (int i = 1; i < str.length(); i++) {
+ char c = str.charAt(i);
+ if (Character.isLetter(c) && !Character.isLowerCase(c)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Helper method to replace calls to "".equals().
+ *
+ * @param str
+ * String to check
+ * @return true if string is empty OR null
+ */
+ static boolean isNotEmpty(final String str) {
+ return str != null && str.length() != 0;
+ }
+
+ /**
+ * @param str input str
+ * @return Returns true if str is MixedCase.
+ */
+ boolean isMixedCase(final String str) {
+ return !isAllUppercase(str)
+ && isNotCapitalizedWord(str)
+ && isNotAllLowercase(str);
+ }
+
+ /**
+ * @return Returns true if str is CamelCase.
+ */
+ public boolean isCamelCase(final String str) {
+ return isNotEmpty(str)
+ && !isAllUppercase(str)
+ && isNotCapitalizedWord(str)
+ && Character.isUpperCase(str.charAt(0))
+ && (!(str.length() > 1) || Character.isLowerCase(str.charAt(1)))
+ && isNotAllLowercase(str);
+ }
+
+
+ /**
+ * Used to determine whether the dictionary supports case conversions.
+ * @return boolean value that answers this question in a deep and meaningful way.
+ *
+ * @since 1.9
+ *
+ */
+ public boolean convertsCase() {
+ return dictionaryMetadata.isConvertingCase();
+ }
+
+ /**
+ * @param str The string to find the replacements for.
+ * @param fromIndex The index from which replacements are found.
+ * @param level The recursion level. The search stops if level is > MAX_RECURSION_LEVEL.
+ * @return A list of all possible replacements of a {#link str} given string
+ */
+ public List<String> getAllReplacements(final String str, final int fromIndex, final int level) {
+ List<String> replaced = new ArrayList<String>();
+ if (level > MAX_RECURSION_LEVEL) { // Stop searching at some point
+ replaced.add(str);
+ return replaced;
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append(str);
+ int index = MAX_WORD_LENGTH;
+ String key = "";
+ int keyLength = 0;
+ boolean found = false;
+ // find first possible replacement after fromIndex position
+ for (final String auxKey : replacementsTheRest.keySet()) {
+ int auxIndex = sb.indexOf(auxKey, fromIndex);
+ if (auxIndex > -1 && auxIndex < index &&
+ !(auxKey.length() < keyLength)) { //select the longest possible key
+ index = auxIndex;
+ key = auxKey;
+ keyLength = auxKey.length();
+ }
+ }
+ if (index < MAX_WORD_LENGTH) {
+ for (final String rep : replacementsTheRest.get(key)) {
+ // start a branch without replacement (only once per key)
+ if (!found) {
+ replaced.addAll(getAllReplacements(str, index + key.length(),
+ level + 1));
+ found = true;
+ }
+ // avoid unnecessary replacements (ex. don't replace L by L·L when L·L already present)
+ int ind = sb.indexOf(rep, fromIndex - rep.length() + 1);
+ if (rep.length() > key.length() && ind > -1
+ && (ind == index || ind == index - rep.length() + 1)) {
+ continue;
+ }
+ // start a branch with replacement
+ sb.replace(index, index + key.length(), rep);
+ replaced.addAll(getAllReplacements(sb.toString(), index + rep.length(),
+ level + 1));
+ sb.setLength(0);
+ sb.append(str);
+ }
+ }
+ if (!found) {
+ replaced.add(sb.toString());
+ }
+ return replaced;
+ }
+
+
+ /**
+ * Sets up the word and candidate. Used only to test the edit distance in
+ * JUnit tests.
+ *
+ * @param word the first word
+ * @param candidate the second word used for edit distance calculation
+ */
+ void setWordAndCandidate(final String word, final String candidate) {
+ wordProcessed = word.toCharArray();
+ wordLen = wordProcessed.length;
+ this.candidate = candidate.toCharArray();
+ candLen = this.candidate.length;
+ effectEditDistance = wordLen <= editDistance ? wordLen - 1 : editDistance;
+ }
+
+ public final int getWordLen() {
+ return wordLen;
+ }
+
+ public final int getCandLen() {
+ return candLen;
+ }
+
+ public final int getEffectiveED() {
+ return effectEditDistance;
+ }
+
+ /**
+ * Used to sort candidates according to edit distance, and possibly
+ * according to their frequency in the future.
+ *
+ */
+ private class CandidateData implements Comparable<CandidateData> {
+ private final String word;
+ private final int distance;
+
+ CandidateData(final String word, final int distance) {
+ this.word = word;
+ this.distance = distance * FREQ_RANGES + FREQ_RANGES - getFrequency(word) - 1;
+ }
+
+ final String getWord() {
+ return word;
+ }
+
+ final int getDistance() {
+ return distance;
+ }
+
+ @Override
+ public int compareTo(final CandidateData cd) {
+ // Assume no overflow.
+ return cd.getDistance() > this.distance ? -1 :
+ cd.getDistance() == this.distance ? 0 : 1;
+ }
+ }
+}
diff --git a/morfologik-speller/src/test/java/morfologik/speller/HMatrixTest.java b/morfologik-speller/src/test/java/morfologik/speller/HMatrixTest.java
new file mode 100644
index 0000000..38aa76d
--- /dev/null
+++ b/morfologik-speller/src/test/java/morfologik/speller/HMatrixTest.java
@@ -0,0 +1,21 @@
+package morfologik.speller;
+
+import static org.junit.Assert.*;
+
+import morfologik.speller.HMatrix;
+
+import org.junit.Test;
+
+public class HMatrixTest {
+
+ private static final int MAX_WORD_LENGTH = 120;
+
+ @Test
+ public void stressTestInit() {
+ for (int i = 0; i < 10; i++) { // test if we don't get beyond array limits etc.
+ HMatrix H = new HMatrix(i, MAX_WORD_LENGTH);
+ assertEquals(0, H.get(1, 1));
+ }
+ }
+
+}
diff --git a/morfologik-speller/src/test/java/morfologik/speller/SpellerTest.java b/morfologik-speller/src/test/java/morfologik/speller/SpellerTest.java
new file mode 100644
index 0000000..48ed2c1
--- /dev/null
+++ b/morfologik-speller/src/test/java/morfologik/speller/SpellerTest.java
@@ -0,0 +1,272 @@
+package morfologik.speller;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+
+import morfologik.stemming.Dictionary;
+
+import org.fest.assertions.api.Assertions;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class SpellerTest {
+ private static Dictionary dictionary;
+
+ @BeforeClass
+ public static void setup() throws Exception {
+ final URL url = SpellerTest.class.getResource("slownik.dict");
+ dictionary = Dictionary.read(url);
+ }
+
+ /*
+ @Test
+ public void testAbka() throws Exception {
+ final Speller spell = new Speller(dictionary, 2);
+ System.out.println("Replacements:");
+ for (String s : spell.findReplacements("abka")) {
+ System.out.println(s);
+ }
+ }
+ */
+
+ @Test
+ public void testRunonWords() throws IOException {
+ final Speller spell = new Speller(dictionary);
+ Assertions.assertThat(spell.replaceRunOnWords("abaka")).isEmpty();
+ Assertions.assertThat(spell.replaceRunOnWords("abakaabace")).contains("abaka abace");
+
+ // Test on an morphological dictionary - should work as well
+ final URL url1 = getClass().getResource("test-infix.dict");
+ final Speller spell1 = new Speller(Dictionary.read(url1));
+ assertTrue(spell1.replaceRunOnWords("Rzekunia").isEmpty());
+ assertTrue(spell1.replaceRunOnWords("RzekuniaRzeczypospolitej").contains("Rzekunia Rzeczypospolitej"));
+ assertTrue(spell1.replaceRunOnWords("RzekuniaRze").isEmpty()); //Rze is not found but is a prefix
+ }
+
+ @Test
+ public void testIsInDictionary() throws IOException {
+ // Test on an morphological dictionary, including separators
+ final URL url1 = getClass().getResource("test-infix.dict");
+ final Speller spell1 = new Speller(Dictionary.read(url1));
+ assertTrue(spell1.isInDictionary("Rzekunia"));
+ assertTrue(!spell1.isInDictionary("Rzekunia+"));
+ assertTrue(!spell1.isInDictionary("Rzekunia+aaa"));
+ // test UTF-8 dictionary
+ final URL url = getClass().getResource("test-utf-spell.dict");
+ final Speller spell = new Speller(Dictionary.read(url));
+ assertTrue(spell.isInDictionary("jaźń"));
+ assertTrue(spell.isInDictionary("zażółć"));
+ assertTrue(spell.isInDictionary("żółwiową"));
+ assertTrue(spell.isInDictionary("ćwikła"));
+ assertTrue(spell.isInDictionary("Żebrowski"));
+ assertTrue(spell.isInDictionary("Święto"));
+ assertTrue(spell.isInDictionary("Åšwierczewski"));
+ assertTrue(spell.isInDictionary("abc"));
+ }
+
+ @Test
+ public void testFindReplacements() throws IOException {
+ final Speller spell = new Speller(dictionary, 1);
+ assertTrue(spell.findReplacements("abka").contains("abak"));
+ //check if we get only dictionary words...
+ List<String> reps = spell.findReplacements("bak");
+ for (final String word: reps) {
+ assertTrue(spell.isInDictionary(word));
+ }
+ assertTrue(spell.findReplacements("abka~~").isEmpty()); // 2 characters more -> edit distance too large
+ assertTrue(!spell.findReplacements("Rezkunia").contains("Rzekunia"));
+
+ final URL url1 = getClass().getResource("test-infix.dict");
+ final Speller spell1 = new Speller(Dictionary.read(url1));
+ assertTrue(spell1.findReplacements("Rezkunia").contains("Rzekunia"));
+ //diacritics
+ assertTrue(spell1.findReplacements("Rzękunia").contains("Rzekunia"));
+ //we should get no candidates for correct words
+ assertTrue(spell1.isInDictionary("Rzekunia"));
+ assertTrue(spell1.findReplacements("Rzekunia").isEmpty());
+ //and no for things that are too different from the dictionary
+ assertTrue(spell1.findReplacements("Strefakibica").isEmpty());
+ //nothing for nothing
+ assertTrue(spell1.findReplacements("").isEmpty());
+ //nothing for weird characters
+ assertTrue(spell1.findReplacements("\u0000").isEmpty());
+ //nothing for other characters
+ assertTrue(spell1.findReplacements("«…»").isEmpty());
+ //nothing for separator
+ assertTrue(spell1.findReplacements("+").isEmpty());
+
+ }
+
+ @Test
+ public void testFrequencyNonUTFDictionary() throws IOException {
+ final URL url1 = getClass().getResource("test_freq_iso.dict");
+ final Speller spell = new Speller(Dictionary.read(url1));
+ assertTrue(spell.isInDictionary("a"));
+ assertTrue(!spell.isInDictionary("aõh")); //non-encodable in UTF-8
+ }
+
+ @Test
+ public void testFindReplacementsInUTF() throws IOException {
+ final URL url = getClass().getResource("test-utf-spell.dict");
+ final Speller spell = new Speller(Dictionary.read(url));
+ assertTrue(spell.findReplacements("gęslą").contains("gęślą"));
+ assertTrue(spell.findReplacements("ćwikla").contains("ćwikła"));
+ assertTrue(spell.findReplacements("Swierczewski").contains("Åšwierczewski"));
+ assertTrue(spell.findReplacements("zółwiową").contains("żółwiową"));
+ assertTrue(spell.findReplacements("Żebrowsk").contains("Żebrowski"));
+ assertTrue(spell.findReplacements("święto").contains("Święto"));
+ //note: no diacritics here, but we still get matches!
+ assertTrue(spell.findReplacements("gesla").contains("gęślą"));
+ assertTrue(spell.findReplacements("swieto").contains("Święto"));
+ assertTrue(spell.findReplacements("zolwiowa").contains("żółwiową"));
+ //using equivalent characters 'x' = 'ź'
+ assertTrue(spell.findReplacements("jexn").contains("jaźń"));
+ // 'u' = 'ó', so the edit distance is still small...
+ assertTrue(spell.findReplacements("zażulv").contains("zażółć"));
+ // 'rz' = 'ż', so the edit distance is still small, but with string replacements...
+ assertTrue(spell.findReplacements("zarzulv").contains("zażółć"));
+ assertTrue(spell.findReplacements("Rzebrowski").contains("Żebrowski"));
+ assertTrue(spell.findReplacements("rzółw").contains("żółw"));
+ assertTrue(spell.findReplacements("Świento").contains("Święto"));
+ // avoid mixed-case words as suggestions when using replacements ('rz' = 'ż')
+ assertTrue(spell.findReplacements("zArzółć").get(0).equals("zażółć"));
+ }
+
+ @Test
+ public void testFindReplacementsUsingFrequency() throws IOException {
+ final URL url = getClass().getResource("dict-with-freq.dict");
+ final Speller spell = new Speller(Dictionary.read(url));
+
+ //check if we get only dictionary words...
+ List<String> reps = spell.findReplacements("jist");
+ for (final String word: reps) {
+ assertTrue(spell.isInDictionary(word));
+ }
+ // get replacements ordered by frequency
+ assertTrue(reps.get(0).equals("just"));
+ assertTrue(reps.get(1).equals("list"));
+ assertTrue(reps.get(2).equals("fist"));
+ assertTrue(reps.get(3).equals("mist"));
+ assertTrue(reps.get(4).equals("jest"));
+ assertTrue(reps.get(5).equals("dist"));
+ assertTrue(reps.get(6).equals("gist"));
+ }
+
+ @Test
+ public void testIsMisspelled() throws IOException {
+ final URL url = getClass().getResource("test-utf-spell.dict");
+ final Speller spell = new Speller(Dictionary.read(url));
+ assertTrue(!spell.isMisspelled("Paragraf22")); //ignorujemy liczby
+ assertTrue(!spell.isMisspelled("!")); //ignorujemy znaki przestankowe
+ assertTrue(spell.isMisspelled("dziekie")); //test, czy znajdujemy błąd
+ assertTrue(!spell.isMisspelled("SłowozGarbem")); //ignorujemy słowa w stylu wielbłąda
+ assertTrue(!spell.isMisspelled("Ćwikła")); //i małe litery
+ assertTrue(!spell.isMisspelled("TOJESTTEST")); //i wielkie litery
+ final Speller oldStyleSpell = new Speller(dictionary, 1);
+ assertTrue(oldStyleSpell.isMisspelled("Paragraf22")); // nie ignorujemy liczby
+ assertTrue(oldStyleSpell.isMisspelled("!")); //nie ignorujemy znaków przestankowych
+ // assertTrue(oldStyleSpell.isMisspelled("SłowozGarbem")); //ignorujemy słowa w stylu wielbłąda
+ assertTrue(oldStyleSpell.isMisspelled("Abaka")); //i małe litery
+ final URL url1 = getClass().getResource("test-infix.dict");
+ final Speller spell1 = new Speller(Dictionary.read(url1));
+ assertTrue(!spell1.isMisspelled("Rzekunia"));
+ assertTrue(spell1.isAllUppercase("RZEKUNIA"));
+ assertTrue(spell1.isMisspelled("RZEKUNIAA")); // finds a typo here
+ assertTrue(!spell1.isMisspelled("RZEKUNIA")); // but not here
+ }
+
+ @Test
+ public void testCamelCase() {
+ final Speller spell = new Speller(dictionary, 1);
+ assertTrue(spell.isCamelCase("CamelCase"));
+ assertTrue(!spell.isCamelCase("Camel"));
+ assertTrue(!spell.isCamelCase("CAMEL"));
+ assertTrue(!spell.isCamelCase("camel"));
+ assertTrue(!spell.isCamelCase("cAmel"));
+ assertTrue(!spell.isCamelCase("CAmel"));
+ assertTrue(!spell.isCamelCase(""));
+ assertTrue(!spell.isCamelCase(null));
+ }
+
+ @Test
+ public void testCapitalizedWord() {
+ final Speller spell = new Speller(dictionary, 1);
+ assertTrue(spell.isNotCapitalizedWord("CamelCase"));
+ assertTrue(!spell.isNotCapitalizedWord("Camel"));
+ assertTrue(spell.isNotCapitalizedWord("CAMEL"));
+ assertTrue(spell.isNotCapitalizedWord("camel"));
+ assertTrue(spell.isNotCapitalizedWord("cAmel"));
+ assertTrue(spell.isNotCapitalizedWord("CAmel"));
+ assertTrue(spell.isNotCapitalizedWord(""));
+ }
+
+ @Test
+ public void testGetAllReplacements() throws IOException {
+ final URL url = getClass().getResource("test-utf-spell.dict");
+ final Speller spell = new Speller(Dictionary.read(url));
+ assertTrue(spell.isMisspelled("rzarzerzarzu"));
+ assertEquals("[rzarzerzarzu]",
+ Arrays.toString(spell.getAllReplacements("rzarzerzarzu", 0, 0).toArray()));
+ }
+
+ @Test
+ public void testEditDistanceCalculation() throws IOException {
+ final Speller spell = new Speller(dictionary, 5);
+ //test examples from Oflazer's paper
+ assertTrue(getEditDistance(spell, "recoginze", "recognize") == 1);
+ assertTrue(getEditDistance(spell, "sailn", "failing") == 3);
+ assertTrue(getEditDistance(spell, "abc", "abcd") == 1);
+ assertTrue(getEditDistance(spell, "abc", "abcde") == 2);
+ //test words from fsa_spell output
+ assertTrue(getEditDistance(spell, "abka", "abaka") == 1);
+ assertTrue(getEditDistance(spell, "abka", "abakan") == 2);
+ assertTrue(getEditDistance(spell, "abka", "abakÄ…") == 2);
+ assertTrue(getEditDistance(spell, "abka", "abaki") == 2);
+ }
+
+ @Test
+ public void testCutOffEditDistance() throws IOException {
+ final Speller spell2 = new Speller(dictionary, 2); //note: threshold = 2
+ //test cut edit distance - reprter / repo from Oflazer
+ assertTrue(getCutOffDistance(spell2, "repo", "reprter") == 1);
+ assertTrue(getCutOffDistance(spell2, "reporter", "reporter") == 0);
+ }
+
+ private int getCutOffDistance(final Speller spell, final String word, final String candidate) {
+ // assuming there is no pair-replacement
+ spell.setWordAndCandidate(word, candidate);
+ final int [] ced = new int[spell.getCandLen() - spell.getWordLen()];
+ for (int i = 0; i < spell.getCandLen() - spell.getWordLen(); i++) {
+
+ ced[i] = spell.cuted(spell.getWordLen() + i, spell.getWordLen() + i, spell.getWordLen() + i);
+ }
+ Arrays.sort(ced);
+ //and the min value...
+ if (ced.length > 0) {
+ return ced[0];
+ }
+ return 0;
+ }
+
+ private int getEditDistance(final Speller spell, final String word, final String candidate) {
+ // assuming there is no pair-replacement
+ spell.setWordAndCandidate(word, candidate);
+ final int maxDistance = spell.getEffectiveED();
+ final int candidateLen = spell.getCandLen();
+ final int wordLen = spell.getWordLen();
+ int ed = 0;
+ for (int i = 0; i < candidateLen; i++) {
+ if (spell.cuted(i, i, i) <= maxDistance) {
+ if (Math.abs(wordLen - 1 - i) <= maxDistance) {
+ ed = spell.ed(wordLen - 1, i, wordLen - 1, i);
+ }
+ }
+ }
+ return ed;
+ }
+} \ No newline at end of file
diff --git a/morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.dict b/morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.dict
new file mode 100644
index 0000000..609a267
--- /dev/null
+++ b/morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.dict
Binary files differ
diff --git a/morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.info b/morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.info
new file mode 100644
index 0000000..1203602
--- /dev/null
+++ b/morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.info
@@ -0,0 +1,15 @@
+#
+# Dictionary properties.
+#
+
+fsa.dict.separator=+
+fsa.dict.encoding=iso-8859-2
+
+fsa.dict.uses-prefixes=false
+fsa.dict.uses-infixes=false
+
+fsa.dict.frequency-included=true
+
+fsa.dict.speller.locale=en_US
+fsa.dict.speller.ignore-diacritics=true
+#fsa.dict.speller.replacement-pairs=ninties 1990s, teached taught, rised rose, a ei, ei a, a ey, ey a, ai ie, ie ai, are air, are ear, are eir, air are, air ere, ere air, ere ear, ere eir, ear are, ear air, ear ere, eir are, eir ere, ch te, te ch, ch ti, ti ch, ch tu, tu ch, ch s, s ch, ch k, k ch, f ph, ph f, gh f, f gh, i igh, igh i, i uy, uy i, i ee, ee i, j di, di j, j gg, gg j, j ge, ge j, s ti, ti s, s ci, ci s, k cc, cc k, k qu, qu k, kw qu, o eau, eau o, o ew, ew o, oo ew, ew oo, ew ui, ui ew, oo ui, ui oo, ew u, u ew, oo u, u oo, u oe, oe u, u ieu, ieu u, ue ew, ew ue, uff ough, oo ieu, ieu oo, ier ear, ear ier, ear air, air ear, w qu, qu w, z ss, ss z, shun tion, shun sion, shun cion \ No newline at end of file
diff --git a/morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.txt b/morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.txt
new file mode 100644
index 0000000..a12876c
--- /dev/null
+++ b/morfologik-speller/src/test/resources/morfologik/speller/dict-with-freq.txt
@@ -0,0 +1,21 @@
+ageist+C
+deist+G
+didst+A
+digest+J
+direst+E
+dist+G
+divest+I
+fist+J
+gist+G
+grist+I
+heist+I
+hist+A
+jest+H
+jilt+D
+joist+F
+just+P
+licit+F
+list+O
+mist+J
+weest+A
+wist+C
diff --git a/morfologik-speller/src/test/resources/morfologik/speller/slownik.dict b/morfologik-speller/src/test/resources/morfologik/speller/slownik.dict
new file mode 100644
index 0000000..b650702
--- /dev/null
+++ b/morfologik-speller/src/test/resources/morfologik/speller/slownik.dict
Binary files differ
diff --git a/morfologik-speller/src/test/resources/morfologik/speller/slownik.info b/morfologik-speller/src/test/resources/morfologik/speller/slownik.info
new file mode 100644
index 0000000..25aef99
--- /dev/null
+++ b/morfologik-speller/src/test/resources/morfologik/speller/slownik.info
@@ -0,0 +1,14 @@
+#
+# Dictionary properties.
+#
+
+fsa.dict.separator=+
+fsa.dict.encoding=Cp1250
+
+fsa.dict.uses-prefixes=false
+fsa.dict.uses-infixes=false
+
+fsa.dict.speller.ignore-diacritics=false
+fsa.dict.speller.ignore-numbers=false
+fsa.dict.speller.convert-case=false
+fsa.dict.speller.ignore-punctuation=false \ No newline at end of file
diff --git a/src-test/morfologik/stemming/test-infix.dict b/morfologik-speller/src/test/resources/morfologik/speller/test-infix.dict
index cc91f70..cc91f70 100644
--- a/src-test/morfologik/stemming/test-infix.dict
+++ b/morfologik-speller/src/test/resources/morfologik/speller/test-infix.dict
Binary files differ
diff --git a/src-test/morfologik/stemming/test-infix.info b/morfologik-speller/src/test/resources/morfologik/speller/test-infix.info
index 30e68ba..9ba1066 100644
--- a/src-test/morfologik/stemming/test-infix.info
+++ b/morfologik-speller/src/test/resources/morfologik/speller/test-infix.info
@@ -6,4 +6,5 @@ fsa.dict.separator=+
fsa.dict.encoding=iso-8859-2
fsa.dict.uses-prefixes=true
-fsa.dict.uses-infixes=true \ No newline at end of file
+fsa.dict.uses-infixes=true
+fsa.dict.speller.ignore-all-uppercase=false \ No newline at end of file
diff --git a/morfologik-speller/src/test/resources/morfologik/speller/test-utf-spell.dict b/morfologik-speller/src/test/resources/morfologik/speller/test-utf-spell.dict
new file mode 100644
index 0000000..63ff635
--- /dev/null
+++ b/morfologik-speller/src/test/resources/morfologik/speller/test-utf-spell.dict
Binary files differ
diff --git a/morfologik-speller/src/test/resources/morfologik/speller/test-utf-spell.info b/morfologik-speller/src/test/resources/morfologik/speller/test-utf-spell.info
new file mode 100644
index 0000000..b13d12f
--- /dev/null
+++ b/morfologik-speller/src/test/resources/morfologik/speller/test-utf-spell.info
@@ -0,0 +1,15 @@
+#
+# Dictionary properties.
+# UTF-8 encoding or native2ascii has to be used for non-ASCII data.
+#
+
+fsa.dict.separator=+
+fsa.dict.encoding=utf-8
+
+fsa.dict.uses-prefixes=false
+fsa.dict.uses-infixes=false
+
+fsa.dict.speller.locale=pl_PL
+fsa.dict.speller.ignore-diacritics=true
+fsa.dict.speller.equivalent-chars=x ź, l ł, u ó, ó u
+fsa.dict.speller.replacement-pairs=rz ż, ż rz, ch h, h ch, ę en, en ę
diff --git a/morfologik-speller/src/test/resources/morfologik/speller/test_freq_iso.dict b/morfologik-speller/src/test/resources/morfologik/speller/test_freq_iso.dict
new file mode 100644
index 0000000..69c5a99
--- /dev/null
+++ b/morfologik-speller/src/test/resources/morfologik/speller/test_freq_iso.dict
Binary files differ
diff --git a/morfologik-speller/src/test/resources/morfologik/speller/test_freq_iso.info b/morfologik-speller/src/test/resources/morfologik/speller/test_freq_iso.info
new file mode 100644
index 0000000..353deac
--- /dev/null
+++ b/morfologik-speller/src/test/resources/morfologik/speller/test_freq_iso.info
@@ -0,0 +1,16 @@
+#
+# Dictionary properties.
+#
+
+fsa.dict.separator=+
+fsa.dict.encoding=iso-8859-2
+
+fsa.dict.uses-prefixes=false
+fsa.dict.uses-infixes=false
+
+fsa.dict.frequency-included=true
+
+fsa.dict.speller.locale=pl_PL
+fsa.dict.speller.ignore-diacritics=true
+fsa.dict.speller.equivalent-chars=x ź, l ł, u ó, ó u
+fsa.dict.speller.replacement-pairs=ź zi, ł eu, ć ci, ć dż, ć dź, ć dz, c dz, ch h, ci ć, cz czy, dź ć, dź dzi, dż ć, dz ć, dzi dź, edzil ędził, ę em, ę en, ei eja, eja ei, em ę, en ę, eu ł, h ch, he chę, śi ś, ii ija, ija ii, iosc ość, ise się, loz łos, ni ń, ńi ń, ń ni, ą oł, oł ą, oi oja, oja oi, ą om, om ą, ą on, on ą, ru kró, ż rz, rz ż, rz sz, scia ścią, ś si, si ś, sić ść, s sną, sz ż, sz rz, tro rot, u y, wu wy, yi yja, yja yi, zal rzał, zekac rzekać, zi ź, zl azł, z żn, z rz, chłopcowi chłopcu, bratowi bratu, aleji alei, lubieć lubić, nei nie, źmie zmie, piatek piątek, pokuj pokój, poszłem poszedłem, prosze proszę, rząda żąda, sa są, sei się, standart standard, trzcionk czcionk, szłem szedłem, pry przy \ No newline at end of file
diff --git a/morfologik-stemming/pom.xml b/morfologik-stemming/pom.xml
new file mode 100644
index 0000000..475b9da
--- /dev/null
+++ b/morfologik-stemming/pom.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-parent</artifactId>
+ <version>1.9.0</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>morfologik-stemming</artifactId>
+ <packaging>jar</packaging>
+
+ <name>Morfologik Stemming APIs</name>
+ <description>Morfologik Stemming APIs.</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-fsa</artifactId>
+ <version>${project.version}</version>
+
+ <exclusions>
+ <!-- Not needed at runtime. -->
+ <exclusion>
+ <groupId>com.carrotsearch</groupId>
+ <artifactId>hppc</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>com.carrotsearch</groupId>
+ <artifactId>junit-benchmarks</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.easytesting</groupId>
+ <artifactId>fest-assert-core</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <defaultGoal>install</defaultGoal>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/src/morfologik/stemming/ArrayViewList.java b/morfologik-stemming/src/main/java/morfologik/stemming/ArrayViewList.java
index 230aef6..4c3f877 100644
--- a/src/morfologik/stemming/ArrayViewList.java
+++ b/morfologik-stemming/src/main/java/morfologik/stemming/ArrayViewList.java
@@ -20,7 +20,7 @@ final class ArrayViewList<E> extends AbstractList<E>
ArrayViewList(E[] array, int start, int length) {
if (array == null)
throw new IllegalArgumentException();
- wrap(a, start, length);
+ wrap(array, start, length);
}
/*
diff --git a/morfologik-stemming/src/main/java/morfologik/stemming/Dictionary.java b/morfologik-stemming/src/main/java/morfologik/stemming/Dictionary.java
new file mode 100644
index 0000000..d72c85c
--- /dev/null
+++ b/morfologik-stemming/src/main/java/morfologik/stemming/Dictionary.java
@@ -0,0 +1,233 @@
+package morfologik.stemming;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.WeakHashMap;
+
+import morfologik.fsa.FSA;
+import morfologik.util.FileUtils;
+import morfologik.util.ResourceUtils;
+
+/**
+ * A dictionary combines {@link FSA} automaton and metadata describing the
+ * internals of dictionary entries' coding ({@link DictionaryMetadata}.
+ *
+ * <p>
+ * A dictionary consists of two files:
+ * <ul>
+ * <li>an actual compressed FSA file,
+ * <li>a metadata file, describing the dictionary.
+ * </ul>
+ * Use static methods in this class to read dictionaries and their metadata.
+ */
+public final class Dictionary {
+ /**
+ * Expected metadata file extension.
+ */
+ public final static String METADATA_FILE_EXTENSION = "info";
+
+ /**
+ * {@link FSA} automaton with the compiled dictionary data.
+ */
+ public final FSA fsa;
+
+ /**
+ * Metadata associated with the dictionary.
+ */
+ public final DictionaryMetadata metadata;
+
+ /**
+ * Default loaded dictionaries.
+ */
+ public static final WeakHashMap<String, Dictionary> defaultDictionaries = new WeakHashMap<String, Dictionary>();
+
+ /**
+ * It is strongly recommended to use static methods in this class for
+ * reading dictionaries.
+ *
+ * @param fsa
+ * An instantiated {@link FSA} instance.
+ *
+ * @param metadata
+ * A map of attributes describing the compression format and
+ * other settings not contained in the FSA automaton. For an
+ * explanation of available attributes and their possible values,
+ * see {@link DictionaryMetadata}.
+ */
+ public Dictionary(FSA fsa, DictionaryMetadata metadata) {
+ this.fsa = fsa;
+ this.metadata = metadata;
+ }
+
+ /**
+ * Attempts to load a dictionary using the path to the FSA file and the
+ * expected metadata extension.
+ */
+ public static Dictionary read(File fsaFile) throws IOException {
+ final File featuresFile = new File(fsaFile.getParent(),
+ getExpectedFeaturesName(fsaFile.getName()));
+
+ FileUtils.assertExists(featuresFile, true, false);
+
+ return readAndClose(
+ new FileInputStream(fsaFile),
+ new FileInputStream(featuresFile));
+ }
+
+ /**
+ * <p>
+ * Attempts to load a dictionary using the URL to the FSA file and the
+ * expected metadata extension.
+ *
+ * <p>
+ * This method can be used to load resource-based dictionaries, but be aware
+ * of JAR resource-locking issues that arise from resource URLs.
+ */
+ public static Dictionary read(URL fsaURL) throws IOException {
+ final String fsa = fsaURL.toExternalForm();
+ final String features = getExpectedFeaturesName(fsa);
+
+ return readAndClose(
+ ResourceUtils.openInputStream(fsa),
+ ResourceUtils.openInputStream(features));
+ }
+
+ /**
+ * Attempts to load a dictionary from opened streams of FSA dictionary data
+ * and associated metadata.
+ */
+ public static Dictionary readAndClose(InputStream fsaData, InputStream featuresData)
+ throws IOException
+ {
+ try {
+ Map<DictionaryAttribute, String> map = new HashMap<DictionaryAttribute, String>();
+ final Properties properties = new Properties();
+ properties.load(new InputStreamReader(featuresData, "UTF-8"));
+
+ // Handle back-compatibility for encoder specification.
+ if (!properties.containsKey(DictionaryAttribute.ENCODER.propertyName)) {
+ boolean usesSuffixes = Boolean.valueOf(properties.getProperty("fsa.dict.uses-suffixes", "true"));
+ boolean usesPrefixes = Boolean.valueOf(properties.getProperty("fsa.dict.uses-prefixes", "false"));
+ boolean usesInfixes = Boolean.valueOf(properties.getProperty("fsa.dict.uses-infixes", "false"));
+
+ if (usesInfixes) {
+ map.put(DictionaryAttribute.ENCODER, EncoderType.INFIX.name());
+ } else if (usesPrefixes) {
+ map.put(DictionaryAttribute.ENCODER, EncoderType.PREFIX.name());
+ } else if (usesSuffixes) {
+ map.put(DictionaryAttribute.ENCODER, EncoderType.SUFFIX.name());
+ } else {
+ map.put(DictionaryAttribute.ENCODER, EncoderType.NONE.name());
+ }
+
+ properties.remove("fsa.dict.uses-suffixes");
+ properties.remove("fsa.dict.uses-prefixes");
+ properties.remove("fsa.dict.uses-infixes");
+ }
+
+ for (Enumeration<?> e = properties.propertyNames(); e.hasMoreElements();) {
+ String key = (String) e.nextElement();
+ map.put(DictionaryAttribute.fromPropertyName(key), properties.getProperty(key));
+ }
+ final DictionaryMetadata features = new DictionaryMetadata(map);
+ final FSA fsa = FSA.read(fsaData);
+
+ return new Dictionary(fsa, features);
+ } finally {
+ FileUtils.close(fsaData, featuresData);
+ }
+ }
+
+ /**
+ * Returns the expected name of the metadata file, based on the name of the
+ * FSA dictionary file. The expected name is resolved by truncating any
+ * suffix of <code>name</code> and appending
+ * {@link #METADATA_FILE_EXTENSION}.
+ */
+ public static String getExpectedFeaturesName(String name) {
+ final int dotIndex = name.lastIndexOf('.');
+ final String featuresName;
+ if (dotIndex >= 0) {
+ featuresName = name.substring(0, dotIndex) + "."
+ + METADATA_FILE_EXTENSION;
+ } else {
+ featuresName = name + "." + METADATA_FILE_EXTENSION;
+ }
+
+ return featuresName;
+ }
+
+ /**
+ * Return a built-in dictionary for a given ISO language code. Dictionaries
+ * are cached internally for potential reuse.
+ *
+ * @throws RuntimeException
+ * Throws a {@link RuntimeException} if the dictionary is not
+ * bundled with the library.
+ */
+ public static Dictionary getForLanguage(String languageCode) {
+ if (languageCode == null || "".equals(languageCode)) {
+ throw new IllegalArgumentException(
+ "Language code must not be empty.");
+ }
+
+ synchronized (defaultDictionaries) {
+ Dictionary dict = defaultDictionaries.get(languageCode);
+ if (dict != null)
+ return dict;
+
+ try {
+ final String dictPath = "morfologik/dictionaries/" + languageCode + ".dict";
+ final String metaPath = Dictionary
+ .getExpectedFeaturesName(dictPath);
+
+ dict = Dictionary.readAndClose(
+ ResourceUtils.openInputStream(dictPath),
+ ResourceUtils.openInputStream(metaPath));
+
+ defaultDictionaries.put(languageCode, dict);
+ return dict;
+ } catch (IOException e) {
+ throw new RuntimeException(
+ "Default dictionary resource for language '"
+ + languageCode + "not found.", e);
+ }
+ }
+ }
+
+ /**
+ * Converts the words on input or output according to conversion tables.
+ *
+ * Useful if the input words need to be normalized (i.e., ligatures,
+ * apostrophes and such).
+ *
+ * @param str - input character sequence to be converted
+ * @param conversionMap - conversion map used to convert the string (a map
+ * from String to String)
+ * @return a converted string.
+ *
+ * @since 1.9.0
+ *
+ */
+ public static CharSequence convertText(final CharSequence str, final Map<String, String> conversionMap) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(str);
+ for (final String auxKey : conversionMap.keySet()) {
+ int index = sb.indexOf(auxKey);
+ while (index != -1) {
+ sb.replace(index, index + auxKey.length(), conversionMap.get(auxKey));
+ index = sb.indexOf(auxKey);
+ }
+ }
+ return sb.toString();
+ }
+
+}
diff --git a/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryAttribute.java b/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryAttribute.java
new file mode 100644
index 0000000..1249800
--- /dev/null
+++ b/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryAttribute.java
@@ -0,0 +1,333 @@
+package morfologik.stemming;
+
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Attributes applying to {@link Dictionary} and {@link DictionaryMetadata}.
+ */
+public enum DictionaryAttribute {
+ /**
+ * Logical fields separator inside the FSA.
+ */
+ SEPARATOR("fsa.dict.separator") {
+ @Override
+ public Character fromString(String separator) {
+ if (separator == null || separator.length() != 1) {
+ throw new IllegalArgumentException("Attribute " + propertyName
+ + " must be a single character.");
+ }
+
+ char charValue = separator.charAt(0);
+ if (Character.isHighSurrogate(charValue) ||
+ Character.isLowSurrogate(charValue)) {
+ throw new IllegalArgumentException(
+ "Field separator character cannot be part of a surrogate pair: " + separator);
+ }
+
+ return charValue;
+ }
+ },
+
+ /**
+ * Character to byte encoding used for strings inside the FSA.
+ */
+ ENCODING("fsa.dict.encoding") {
+ @Override
+ public Charset fromString(String charsetName) {
+ return Charset.forName(charsetName);
+ }
+ },
+
+ /**
+ * If the FSA dictionary includes frequency data.
+ */
+ FREQUENCY_INCLUDED("fsa.dict.frequency-included") {
+ @Override
+ public Boolean fromString(String value) {
+ return booleanValue(value);
+ }
+ },
+
+ /**
+ * If the spelling dictionary is supposed to ignore words containing digits
+ */
+ IGNORE_NUMBERS("fsa.dict.speller.ignore-numbers") {
+ @Override
+ public Boolean fromString(String value) {
+ return booleanValue(value);
+ }
+ },
+
+ /**
+ * If the spelling dictionary is supposed to ignore punctuation.
+ */
+ IGNORE_PUNCTUATION("fsa.dict.speller.ignore-punctuation") {
+ @Override
+ public Boolean fromString(String value) {
+ return booleanValue(value);
+ }
+ },
+
+ /**
+ * If the spelling dictionary is supposed to ignore CamelCase words.
+ */
+ IGNORE_CAMEL_CASE("fsa.dict.speller.ignore-camel-case") {
+ @Override
+ public Boolean fromString(String value) {
+ return booleanValue(value);
+ }
+ },
+
+ /**
+ * If the spelling dictionary is supposed to ignore ALL UPPERCASE words.
+ */
+ IGNORE_ALL_UPPERCASE("fsa.dict.speller.ignore-all-uppercase") {
+ @Override
+ public Boolean fromString(String value) {
+ return booleanValue(value);
+ }
+ },
+
+ /**
+ * If the spelling dictionary is supposed to ignore diacritics, so that
+ * 'a' would be treated as equivalent to 'Ä…'.
+ */
+ IGNORE_DIACRITICS("fsa.dict.speller.ignore-diacritics") {
+ @Override
+ public Boolean fromString(String value) {
+ return booleanValue(value);
+ }
+ },
+
+ /**
+ * if the spelling dictionary is supposed to treat upper and lower case
+ * as equivalent.
+ */
+ CONVERT_CASE("fsa.dict.speller.convert-case") {
+ @Override
+ public Boolean fromString(String value) {
+ return booleanValue(value);
+ }
+ },
+
+ /**
+ * If the spelling dictionary is supposed to split runOnWords.
+ */
+ RUN_ON_WORDS("fsa.dict.speller.runon-words") {
+ @Override
+ public Boolean fromString(String value) {
+ return booleanValue(value);
+ }
+ },
+
+ /** Locale associated with the dictionary. */
+ LOCALE("fsa.dict.speller.locale") {
+ @Override
+ public Locale fromString(String value) {
+ return new Locale(value);
+ }
+ },
+
+ /** Locale associated with the dictionary. */
+ ENCODER("fsa.dict.encoder") {
+ @Override
+ public EncoderType fromString(String value) {
+ return EncoderType.valueOf(value.toUpperCase(Locale.ROOT));
+ }
+ },
+
+ /**
+ * Input conversion pairs to replace non-standard characters before search in a speller dictionary.
+ * For example, common ligatures can be replaced here.
+ */
+ INPUT_CONVERSION("fsa.dict.input-conversion") {
+ @Override
+ public Map<String, String> fromString(String value) throws IllegalArgumentException {
+ Map<String, String> conversionPairs = new HashMap<String, String>();
+ final String[] replacements = value.split(",\\s*");
+ for (final String stringPair : replacements) {
+ final String[] twoStrings = stringPair.trim().split(" ");
+ if (twoStrings.length == 2) {
+ if (!conversionPairs.containsKey(twoStrings[0])) {
+ conversionPairs.put(twoStrings[0], twoStrings[1]);
+ } else {
+ throw new IllegalArgumentException(
+ "Input conversion cannot specify different values for the same input string: " + twoStrings[0]);
+ }
+ } else {
+ throw new IllegalArgumentException("Attribute " + propertyName
+ + " is not in the proper format: " + value);
+ }
+ }
+ return conversionPairs;
+ }
+ },
+
+ /**
+ * Output conversion pairs to replace non-standard characters before search in a speller dictionary.
+ * For example, standard characters can be replaced here into ligatures.
+ *
+ * Useful for dictionaries that do have certain standards imposed.
+ *
+ */
+ OUTPUT_CONVERSION ("fsa.dict.output-conversion") {
+ @Override
+ public Map<String, String> fromString(String value) throws IllegalArgumentException {
+ Map<String, String> conversionPairs = new HashMap<String, String>();
+ final String[] replacements = value.split(",\\s*");
+ for (final String stringPair : replacements) {
+ final String[] twoStrings = stringPair.trim().split(" ");
+ if (twoStrings.length == 2) {
+ if (!conversionPairs.containsKey(twoStrings[0])) {
+ conversionPairs.put(twoStrings[0], twoStrings[1]);
+ } else {
+ throw new IllegalArgumentException(
+ "Input conversion cannot specify different values for the same input string: " + twoStrings[0]);
+ }
+ } else {
+ throw new IllegalArgumentException("Attribute " + propertyName
+ + " is not in the proper format: " + value);
+ }
+ }
+ return conversionPairs;
+ }
+ },
+
+ /**
+ * Replacement pairs for non-obvious candidate search in a speller dictionary.
+ * For example, Polish <tt>rz</tt> is phonetically equivalent to <tt>ż</tt>,
+ * and this may be specified here to allow looking for replacements of <tt>rz</tt> with <tt>ż</tt>
+ * and vice versa.
+ */
+ REPLACEMENT_PAIRS("fsa.dict.speller.replacement-pairs") {
+ @Override
+ public Map<String, List<String>> fromString(String value) throws IllegalArgumentException {
+ Map<String, List<String>> replacementPairs = new HashMap<String, List<String>>();
+ final String[] replacements = value.split(",\\s*");
+ for (final String stringPair : replacements) {
+ final String[] twoStrings = stringPair.trim().split(" ");
+ if (twoStrings.length == 2) {
+ if (!replacementPairs.containsKey(twoStrings[0])) {
+ List<String> strList = new ArrayList<String>();
+ strList.add(twoStrings[1]);
+ replacementPairs.put(twoStrings[0], strList);
+ } else {
+ replacementPairs.get(twoStrings[0]).add(twoStrings[1]);
+ }
+ } else {
+ throw new IllegalArgumentException("Attribute " + propertyName
+ + " is not in the proper format: " + value);
+ }
+ }
+ return replacementPairs;
+ }
+ },
+
+ /**
+ * Equivalent characters (treated similarly as equivalent chars with and without
+ * diacritics). For example, Polish <tt>Å‚</tt> can be specified as equivalent to <tt>l</tt>.
+ *
+ * <p>This implements a feature similar to hunspell MAP in the affix file.
+ */
+ EQUIVALENT_CHARS("fsa.dict.speller.equivalent-chars") {
+ @Override
+ public Map<Character, List<Character>> fromString(String value) throws IllegalArgumentException {
+ Map<Character, List<Character>> equivalentCharacters =
+ new HashMap<Character, List<Character>>();
+ final String[] eqChars = value.split(",\\s*");
+ for (final String characterPair : eqChars) {
+ final String[] twoChars = characterPair.trim().split(" ");
+ if (twoChars.length == 2
+ && twoChars[0].length() == 1
+ && twoChars[1].length() == 1) {
+ char fromChar = twoChars[0].charAt(0);
+ char toChar = twoChars[1].charAt(0);
+ if (!equivalentCharacters.containsKey(fromChar)) {
+ List<Character> chList = new ArrayList<Character>();
+ equivalentCharacters.put(fromChar, chList);
+ }
+ equivalentCharacters.get(fromChar).add(toChar);
+ } else {
+ throw new IllegalArgumentException("Attribute " + propertyName
+ + " is not in the proper format: " + value);
+ }
+ }
+ return equivalentCharacters;
+ }
+ },
+
+ /**
+ * Dictionary license attribute.
+ */
+ LICENSE("fsa.dict.license"),
+
+ /**
+ * Dictionary author.
+ */
+ AUTHOR("fsa.dict.author"),
+
+ /**
+ * Dictionary creation date.
+ */
+ CREATION_DATE("fsa.dict.created");
+
+ /**
+ * Property name for this attribute.
+ */
+ public final String propertyName;
+
+ /**
+ * Converts a string to the given attribute's value (covariants used).
+ *
+ * @throws IllegalArgumentException
+ * If the input string cannot be converted to the attribute's
+ * value.
+ */
+ public Object fromString(String value) throws IllegalArgumentException {
+ return value;
+ }
+
+ /**
+ * Return an {@link DictionaryAttribute} by its {@link #propertyName}.
+ */
+ public static DictionaryAttribute fromPropertyName(String propertyName) {
+ DictionaryAttribute value = attrsByPropertyName.get(propertyName);
+ if (value == null) {
+ throw new IllegalArgumentException("No attribute for property: " + propertyName);
+ }
+ return value;
+ }
+
+ private static final Map<String,DictionaryAttribute> attrsByPropertyName;
+ static {
+ attrsByPropertyName = new HashMap<String,DictionaryAttribute>();
+ for (DictionaryAttribute attr : DictionaryAttribute.values()) {
+ if (attrsByPropertyName.put(attr.propertyName, attr) != null) {
+ throw new RuntimeException("Duplicate property key for: " + attr);
+ }
+ }
+ }
+
+ /**
+ * Private enum instance constructor.
+ */
+ private DictionaryAttribute(String propertyName) {
+ this.propertyName = propertyName;
+ }
+
+ private static Boolean booleanValue(String value) {
+ value = value.toLowerCase();
+ if ("true".equals(value) || "yes".equals(value) || "on".equals(value)) {
+ return Boolean.TRUE;
+ }
+ if ("false".equals(value) || "no".equals(value) || "off".equals(value)) {
+ return Boolean.FALSE;
+ }
+ throw new IllegalArgumentException("Not a boolean value: " + value);
+ }
+}
diff --git a/src/morfologik/stemming/DictionaryIterator.java b/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryIterator.java
index 19b6dad..104ff58 100644
--- a/src/morfologik/stemming/DictionaryIterator.java
+++ b/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryIterator.java
@@ -27,7 +27,7 @@ public final class DictionaryIterator implements Iterator<WordData> {
public DictionaryIterator(Dictionary dictionary, CharsetDecoder decoder,
boolean decodeStems) {
this.entriesIter = dictionary.fsa.iterator();
- this.separator = dictionary.metadata.separator;
+ this.separator = dictionary.metadata.getSeparator();
this.dictionaryMetadata = dictionary.metadata;
this.decoder = decoder;
this.entry = new WordData(decoder);
@@ -92,11 +92,10 @@ public final class DictionaryIterator implements Iterator<WordData> {
*/
entry.stemBuffer.clear();
if (decodeStems) {
- entry.stemBuffer = DictionaryLookup.decodeStem(entry.stemBuffer,
+ entry.stemBuffer = DictionaryLookup.decodeBaseForm(entry.stemBuffer,
ba, sepPos, inflectedBuffer, dictionaryMetadata);
} else {
- entry.stemBuffer = BufferUtils.ensureCapacity(entry.stemBuffer,
- sepPos);
+ entry.stemBuffer = BufferUtils.ensureCapacity(entry.stemBuffer, sepPos);
entry.stemBuffer.put(ba, 0, sepPos);
}
entry.stemBuffer.flip();
diff --git a/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryLookup.java b/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryLookup.java
new file mode 100644
index 0000000..5bb0716
--- /dev/null
+++ b/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryLookup.java
@@ -0,0 +1,403 @@
+package morfologik.stemming;
+
+import static morfologik.fsa.MatchResult.SEQUENCE_IS_A_PREFIX;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+import morfologik.fsa.FSA;
+import morfologik.fsa.FSAFinalStatesIterator;
+import morfologik.fsa.FSATraversal;
+import morfologik.fsa.MatchResult;
+import morfologik.util.BufferUtils;
+
+/**
+ * This class implements a dictionary lookup over an FSA dictionary. The
+ * dictionary for this class should be prepared from a text file using Jan
+ * Daciuk's FSA package (see link below).
+ *
+ * <p>
+ * <b>Important:</b> finite state automatons in Jan Daciuk's implementation use
+ * <em>bytes</em> not unicode characters. Therefore objects of this class always
+ * have to be constructed with an encoding used to convert Java strings to byte
+ * arrays and the other way around. You <b>can</b> use UTF-8 encoding, as it
+ * should not conflict with any control sequences and separator characters.
+ *
+ * @see <a href="http://www.eti.pg.gda.pl/~jandac/fsa.html">FSA package Web
+ * site</a>
+ */
+public final class DictionaryLookup implements IStemmer, Iterable<WordData> {
+ private static final int REMOVE_EVERYTHING = 255;
+
+ /** An FSA used for lookups. */
+ private final FSATraversal matcher;
+
+ /** An iterator for walking along the final states of {@link #fsa}. */
+ private final FSAFinalStatesIterator finalStatesIterator;
+
+ /** FSA's root node. */
+ private final int rootNode;
+
+ /** Expand buffers and arrays by this constant. */
+ private final static int EXPAND_SIZE = 10;
+
+ /** Private internal array of reusable word data objects. */
+ private WordData[] forms = new WordData[0];
+
+ /** A "view" over an array implementing */
+ private final ArrayViewList<WordData> formsList = new ArrayViewList<WordData>(
+ forms, 0, forms.length);
+
+ /**
+ * Features of the compiled dictionary.
+ *
+ * @see DictionaryMetadata
+ */
+ private final DictionaryMetadata dictionaryMetadata;
+
+ /**
+ * Charset encoder for the FSA.
+ */
+ private final CharsetEncoder encoder;
+
+ /**
+ * Charset decoder for the FSA.
+ */
+ private final CharsetDecoder decoder;
+
+ /**
+ * The FSA we are using.
+ */
+ private final FSA fsa;
+
+ /**
+ * @see #getSeparatorChar()
+ */
+ private final char separatorChar;
+
+ /**
+ * Internal reusable buffer for encoding words into byte arrays using
+ * {@link #encoder}.
+ */
+ private ByteBuffer byteBuffer = ByteBuffer.allocate(0);
+
+ /**
+ * Internal reusable buffer for encoding words into byte arrays using
+ * {@link #encoder}.
+ */
+ private CharBuffer charBuffer = CharBuffer.allocate(0);
+
+ /**
+ * Reusable match result.
+ */
+ private final MatchResult matchResult = new MatchResult();
+
+ /**
+ * The {@link Dictionary} this lookup is using.
+ */
+ private final Dictionary dictionary;
+
+ /**
+ * <p>
+ * Creates a new object of this class using the given FSA for word lookups
+ * and encoding for converting characters to bytes.
+ *
+ * @throws IllegalArgumentException
+ * if FSA's root node cannot be acquired (dictionary is empty).
+ */
+ public DictionaryLookup(Dictionary dictionary)
+ throws IllegalArgumentException {
+ this.dictionary = dictionary;
+ this.dictionaryMetadata = dictionary.metadata;
+ this.rootNode = dictionary.fsa.getRootNode();
+ this.fsa = dictionary.fsa;
+ this.matcher = new FSATraversal(fsa);
+ this.finalStatesIterator = new FSAFinalStatesIterator(fsa, fsa.getRootNode());
+
+ if (rootNode == 0) {
+ throw new IllegalArgumentException(
+ "Dictionary must have at least the root node.");
+ }
+
+ if (dictionaryMetadata == null) {
+ throw new IllegalArgumentException(
+ "Dictionary metadata must not be null.");
+ }
+
+ decoder = dictionary.metadata.getDecoder();
+ encoder = dictionary.metadata.getEncoder();
+ separatorChar = dictionary.metadata.getSeparatorAsChar();
+ }
+
+ /**
+ * Searches the automaton for a symbol sequence equal to <code>word</code>,
+ * followed by a separator. The result is a stem (decompressed accordingly
+ * to the dictionary's specification) and an optional tag data.
+ */
+ @Override
+ public List<WordData> lookup(CharSequence word) {
+ final byte separator = dictionaryMetadata.getSeparator();
+
+ if (!dictionaryMetadata.getInputConversionPairs().isEmpty()) {
+ word = Dictionary.convertText(word, dictionaryMetadata.getInputConversionPairs());
+ }
+
+ // Reset the output list to zero length.
+ formsList.wrap(forms, 0, 0);
+
+ // Encode word characters into bytes in the same encoding as the FSA's.
+ charBuffer.clear();
+ charBuffer = BufferUtils.ensureCapacity(charBuffer, word.length());
+ for (int i = 0; i < word.length(); i++) {
+ char chr = word.charAt(i);
+ if (chr == separatorChar)
+ return formsList;
+ charBuffer.put(chr);
+ }
+ charBuffer.flip();
+ byteBuffer = charsToBytes(charBuffer, byteBuffer);
+
+ // Try to find a partial match in the dictionary.
+ final MatchResult match = matcher.match(matchResult, byteBuffer
+ .array(), 0, byteBuffer.remaining(), rootNode);
+
+ if (match.kind == SEQUENCE_IS_A_PREFIX) {
+ /*
+ * The entire sequence exists in the dictionary. A separator should
+ * be the next symbol.
+ */
+ final int arc = fsa.getArc(match.node, separator);
+
+ /*
+ * The situation when the arc points to a final node should NEVER
+ * happen. After all, we want the word to have SOME base form.
+ */
+ if (arc != 0 && !fsa.isArcFinal(arc)) {
+ // There is such a word in the dictionary. Return its base forms.
+ int formsCount = 0;
+
+ finalStatesIterator.restartFrom(fsa.getEndNode(arc));
+ while (finalStatesIterator.hasNext()) {
+ final ByteBuffer bb = finalStatesIterator.next();
+ final byte[] ba = bb.array();
+ final int bbSize = bb.remaining();
+
+ if (formsCount >= forms.length) {
+ forms = Arrays.copyOf(forms, forms.length + EXPAND_SIZE);
+ for (int k = 0; k < forms.length; k++) {
+ if (forms[k] == null)
+ forms[k] = new WordData(decoder);
+ }
+ }
+
+ /*
+ * Now, expand the prefix/ suffix 'compression' and store
+ * the base form.
+ */
+ final WordData wordData = forms[formsCount++];
+ wordData.reset();
+
+ wordData.wordBuffer = byteBuffer;
+ if (dictionaryMetadata.getOutputConversionPairs().isEmpty()) {
+ wordData.wordCharSequence = word;
+ } else {
+ wordData.wordCharSequence = Dictionary.convertText(word,
+ dictionaryMetadata.getOutputConversionPairs());
+ }
+
+ /*
+ * Find the separator byte's position splitting the inflection instructions
+ * from the tag.
+ */
+ int sepPos;
+ for (sepPos = 0; sepPos < bbSize; sepPos++) {
+ if (ba[sepPos] == separator)
+ break;
+ }
+
+ /*
+ * Decode the stem into stem buffer.
+ */
+ wordData.stemBuffer.clear();
+ wordData.stemBuffer = decodeBaseForm(wordData.stemBuffer, ba,
+ sepPos, byteBuffer, dictionaryMetadata);
+ wordData.stemBuffer.flip();
+
+ // Skip separator character.
+ sepPos++;
+
+ /*
+ * Decode the tag data.
+ */
+ final int tagSize = bbSize - sepPos;
+ if (tagSize > 0) {
+ wordData.tagBuffer = BufferUtils.ensureCapacity(
+ wordData.tagBuffer, tagSize);
+ wordData.tagBuffer.clear();
+ wordData.tagBuffer.put(ba, sepPos, tagSize);
+ wordData.tagBuffer.flip();
+ }
+ }
+
+ formsList.wrap(forms, 0, formsCount);
+ }
+ } else {
+ /*
+ * this case is somewhat confusing: we should have hit the separator
+ * first... I don't really know how to deal with it at the time
+ * being.
+ */
+ }
+ return formsList;
+ }
+
+ /**
+ * Decode the base form of an inflected word and save its decoded form into
+ * a byte buffer.
+ *
+ * @param output
+ * The byte buffer to save the result to. A new buffer may be
+ * allocated if the capacity of <code>bb</code> is not large
+ * enough to store the result. The buffer is not flipped upon
+ * return.
+ *
+ * @param inflectedForm
+ * Inflected form's bytes (decoded properly).
+ *
+ * @param encoded
+ * Bytes of the encoded base form, starting at 0 index.
+ *
+ * @param encodedLen
+ * Length of the encode base form.
+ *
+ * @return Returns either <code>bb</code> or a new buffer whose capacity is
+ * large enough to store the output of the decoded data.
+ */
+ public static ByteBuffer decodeBaseForm(
+ ByteBuffer output,
+ byte[] encoded,
+ int encodedLen,
+ ByteBuffer inflectedForm,
+ DictionaryMetadata metadata) {
+
+ // FIXME: We should eventually get rid of this method and use
+ // each encoder's #decode method. The problem is that we'd have to include
+ // HPPC or roundtrip via HPPC to a ByteBuffer, which would slow things down.
+ // Since this is performance-crucial routine, I leave it for now.
+
+ // Prepare the buffer.
+ output.clear();
+
+ assert inflectedForm.position() == 0;
+
+ // Increase buffer size (overallocating), if needed.
+ final byte[] src = inflectedForm.array();
+ final int srcLen = inflectedForm.remaining();
+ if (output.capacity() < srcLen + encodedLen) {
+ output = ByteBuffer.allocate(srcLen + encodedLen);
+ }
+
+ switch (metadata.getEncoderType()) {
+ case SUFFIX:
+ int suffixTrimCode = encoded[0];
+ int truncateBytes = suffixTrimCode - 'A' & 0xFF;
+ if (truncateBytes == REMOVE_EVERYTHING) {
+ truncateBytes = srcLen;
+ }
+ output.put(src, 0, srcLen - truncateBytes);
+ output.put(encoded, 1, encodedLen - 1);
+ break;
+
+ case PREFIX:
+ int truncatePrefixBytes = encoded[0] - 'A' & 0xFF;
+ int truncateSuffixBytes = encoded[1] - 'A' & 0xFF;
+ if (truncatePrefixBytes == REMOVE_EVERYTHING ||
+ truncateSuffixBytes == REMOVE_EVERYTHING) {
+ truncatePrefixBytes = srcLen;
+ truncateSuffixBytes = 0;
+ }
+ output.put(src, truncatePrefixBytes, srcLen - (truncateSuffixBytes + truncatePrefixBytes));
+ output.put(encoded, 2, encodedLen - 2);
+ break;
+
+ case INFIX:
+ int infixIndex = encoded[0] - 'A' & 0xFF;
+ int infixLength = encoded[1] - 'A' & 0xFF;
+ truncateSuffixBytes = encoded[2] - 'A' & 0xFF;
+ if (infixLength == REMOVE_EVERYTHING ||
+ truncateSuffixBytes == REMOVE_EVERYTHING) {
+ infixIndex = 0;
+ infixLength = srcLen;
+ truncateSuffixBytes = 0;
+ }
+ output.put(src, 0, infixIndex);
+ output.put(src, infixIndex + infixLength, srcLen - (infixIndex + infixLength + truncateSuffixBytes));
+ output.put(encoded, 3, encodedLen - 3);
+ break;
+
+ case NONE:
+ output.put(encoded, 0, encodedLen);
+ break;
+
+ default:
+ throw new RuntimeException("Unhandled switch/case: " + metadata.getEncoderType());
+ }
+
+ return output;
+ }
+
+ /**
+ * Encode a character sequence into a byte buffer, optionally expanding
+ * buffer.
+ */
+ private ByteBuffer charsToBytes(CharBuffer chars, ByteBuffer bytes) {
+ bytes.clear();
+ final int maxCapacity = (int) (chars.remaining() * encoder
+ .maxBytesPerChar());
+ if (bytes.capacity() <= maxCapacity) {
+ bytes = ByteBuffer.allocate(maxCapacity);
+ }
+
+ chars.mark();
+ encoder.reset();
+ if (encoder.encode(chars, bytes, true).isError()) {
+ // remove everything, we don't want to accept malformed input
+ bytes.clear();
+ }
+ bytes.flip();
+ chars.reset();
+
+ return bytes;
+ }
+
+ /**
+ * Return an iterator over all {@link WordData} entries available in the
+ * embedded {@link Dictionary}.
+ */
+ @Override
+ public Iterator<WordData> iterator() {
+ return new DictionaryIterator(dictionary, decoder, true);
+ }
+
+ /**
+ * @return Return the {@link Dictionary} used by this object.
+ */
+ public Dictionary getDictionary() {
+ return dictionary;
+ }
+
+ /**
+ * @return Returns the logical separator character splitting inflected form,
+ * lemma correction token and a tag. Note that this character is a best-effort
+ * conversion from a byte in {@link DictionaryMetadata#separator} and
+ * may not be valid in the target encoding (although this is highly unlikely).
+ */
+ public char getSeparatorChar() {
+ return separatorChar;
+ }
+}
diff --git a/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryMetadata.java b/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryMetadata.java
new file mode 100644
index 0000000..1475de6
--- /dev/null
+++ b/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryMetadata.java
@@ -0,0 +1,298 @@
+package morfologik.stemming;
+
+import static morfologik.stemming.DictionaryAttribute.CONVERT_CASE;
+import static morfologik.stemming.DictionaryAttribute.ENCODING;
+import static morfologik.stemming.DictionaryAttribute.FREQUENCY_INCLUDED;
+import static morfologik.stemming.DictionaryAttribute.IGNORE_ALL_UPPERCASE;
+import static morfologik.stemming.DictionaryAttribute.IGNORE_CAMEL_CASE;
+import static morfologik.stemming.DictionaryAttribute.IGNORE_DIACRITICS;
+import static morfologik.stemming.DictionaryAttribute.IGNORE_NUMBERS;
+import static morfologik.stemming.DictionaryAttribute.IGNORE_PUNCTUATION;
+import static morfologik.stemming.DictionaryAttribute.RUN_ON_WORDS;
+import static morfologik.stemming.DictionaryAttribute.SEPARATOR;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.CharacterCodingException;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import java.nio.charset.CodingErrorAction;
+import java.nio.charset.UnsupportedCharsetException;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Description of attributes, their types and default values.
+ *
+ * @see Dictionary
+ */
+public final class DictionaryMetadata {
+ /**
+ * Default attribute values.
+ */
+ private static Map<DictionaryAttribute, String> DEFAULT_ATTRIBUTES = new DictionaryMetadataBuilder()
+ .separator('+')
+ .encoder(EncoderType.SUFFIX)
+ .frequencyIncluded()
+ .ignorePunctuation()
+ .ignoreNumbers()
+ .ignoreCamelCase()
+ .ignoreAllUppercase()
+ .ignoreDiacritics()
+ .convertCase()
+ .supportRunOnWords()
+ .toMap();
+
+ /**
+ * Required attributes.
+ */
+ private static EnumSet<DictionaryAttribute> REQUIRED_ATTRIBUTES = EnumSet.of(
+ SEPARATOR,
+ ENCODING);
+
+ /**
+ * A separator character between fields (stem, lemma, form). The character
+ * must be within byte range (FSA uses bytes internally).
+ */
+ private byte separator;
+ private char separatorChar;
+
+ /**
+ * Encoding used for converting bytes to characters and vice versa.
+ */
+ private String encoding;
+
+ private Charset charset;
+ private Locale locale = Locale.getDefault();
+
+ /**
+ * Replacement pairs for non-obvious candidate search in a speller dictionary.
+ */
+ private Map<String, List<String>> replacementPairs = Collections.emptyMap();
+
+ /**
+ * Conversion pairs for input conversion, for example to replace ligatures.
+ */
+ private Map<String, String> inputConversion = Collections.emptyMap();
+
+ /**
+ * Conversion pairs for output conversion, for example to replace ligatures.
+ */
+ private Map<String, String> outputConversion = Collections.emptyMap();
+
+ /**
+ * Equivalent characters (treated similarly as equivalent chars with and without
+ * diacritics). For example, Polish <tt>Å‚</tt> can be specified as equivalent to <tt>l</tt>.
+ *
+ * This implements a feature similar to hunspell MAP in the affix file.
+ */
+ private Map<Character, List<Character>> equivalentChars = Collections.emptyMap();
+
+ /**
+ * All attributes.
+ */
+ private final EnumMap<DictionaryAttribute, String> attributes;
+
+ /**
+ * All "enabled" boolean attributes.
+ */
+ private final EnumMap<DictionaryAttribute,Boolean> boolAttributes;
+
+ /**
+ * Sequence encoder.
+ */
+ private EncoderType encoderType;
+
+ /**
+ * Return all attributes.
+ */
+ public Map<DictionaryAttribute, String> getAttributes() {
+ return Collections.unmodifiableMap(attributes);
+ }
+
+ // Cached attrs.
+ public String getEncoding() { return encoding; }
+ public byte getSeparator() { return separator; }
+ public Locale getLocale() { return locale; }
+
+ public Map<String, String> getInputConversionPairs() { return inputConversion; }
+ public Map<String, String> getOutputConversionPairs() { return outputConversion; }
+
+ public Map<String, List<String>> getReplacementPairs() { return replacementPairs; }
+ public Map<Character, List<Character>> getEquivalentChars() { return equivalentChars; }
+
+ // Dynamically fetched.
+ public boolean isFrequencyIncluded() { return boolAttributes.get(FREQUENCY_INCLUDED); }
+ public boolean isIgnoringPunctuation() { return boolAttributes.get(IGNORE_PUNCTUATION); }
+ public boolean isIgnoringNumbers() { return boolAttributes.get(IGNORE_NUMBERS); }
+ public boolean isIgnoringCamelCase() { return boolAttributes.get(IGNORE_CAMEL_CASE); }
+ public boolean isIgnoringAllUppercase() { return boolAttributes.get(IGNORE_ALL_UPPERCASE); }
+ public boolean isIgnoringDiacritics() { return boolAttributes.get(IGNORE_DIACRITICS); }
+ public boolean isConvertingCase() { return boolAttributes.get(CONVERT_CASE); }
+ public boolean isSupportingRunOnWords() { return boolAttributes.get(RUN_ON_WORDS); }
+
+ /**
+ * Create an instance from an attribute map.
+ *
+ * @see DictionaryMetadataBuilder
+ */
+ public DictionaryMetadata(Map<DictionaryAttribute, String> userAttrs) {
+ this.boolAttributes = new EnumMap<DictionaryAttribute,Boolean>(DictionaryAttribute.class);
+ this.attributes = new EnumMap<DictionaryAttribute, String>(DictionaryAttribute.class);
+ this.attributes.putAll(userAttrs);
+
+ EnumMap<DictionaryAttribute, String> attrs = new EnumMap<DictionaryAttribute, String>(DEFAULT_ATTRIBUTES);
+ attrs.putAll(userAttrs);
+
+ // Convert some attrs from the map to local fields for performance reasons.
+ EnumSet<DictionaryAttribute> requiredAttributes = EnumSet.copyOf(REQUIRED_ATTRIBUTES);
+
+ for (Map.Entry<DictionaryAttribute,String> e : attrs.entrySet()) {
+ requiredAttributes.remove(e.getKey());
+
+ // Run validation and conversion on all of them.
+ Object value = e.getKey().fromString(e.getValue());
+ switch (e.getKey()) {
+ case ENCODING:
+ this.encoding = e.getValue();
+ if (!Charset.isSupported(encoding)) {
+ throw new IllegalArgumentException("Encoding not supported on this JVM: "
+ + encoding);
+ }
+ this.charset = (Charset) value;
+ break;
+
+ case SEPARATOR:
+ this.separatorChar = (Character) value;
+ break;
+
+ case LOCALE:
+ this.locale = (Locale) value;
+ break;
+
+ case ENCODER:
+ this.encoderType = (EncoderType) value;
+ break;
+
+ case INPUT_CONVERSION:
+ {
+ @SuppressWarnings("unchecked")
+ Map<String, String> gvalue = (Map<String, String>) value;
+ this.inputConversion = gvalue;
+ }
+ break;
+
+ case OUTPUT_CONVERSION:
+ {
+ @SuppressWarnings("unchecked")
+ Map<String, String> gvalue = (Map<String, String>) value;
+ this.outputConversion = gvalue;
+ }
+ break;
+
+ case REPLACEMENT_PAIRS:
+ {
+ @SuppressWarnings("unchecked")
+ Map<String, List<String>> gvalue = (Map<String, List<String>>) value;
+ this.replacementPairs = gvalue;
+ }
+ break;
+
+ case EQUIVALENT_CHARS:
+ {
+ @SuppressWarnings("unchecked")
+ Map<Character, List<Character>> gvalue = (Map<Character, List<Character>>) value;
+ this.equivalentChars = gvalue;
+ }
+ break;
+
+ case IGNORE_PUNCTUATION:
+ case IGNORE_NUMBERS:
+ case IGNORE_CAMEL_CASE:
+ case IGNORE_ALL_UPPERCASE:
+ case IGNORE_DIACRITICS:
+ case CONVERT_CASE:
+ case RUN_ON_WORDS:
+ case FREQUENCY_INCLUDED:
+ this.boolAttributes.put(e.getKey(), (Boolean) value);
+ break;
+
+ case AUTHOR:
+ case LICENSE:
+ case CREATION_DATE:
+ // Just run validation.
+ e.getKey().fromString(e.getValue());
+ break;
+
+ default:
+ throw new RuntimeException("Unexpected code path (attribute should be handled but is not): " + e.getKey());
+ }
+ }
+
+ if (!requiredAttributes.isEmpty()) {
+ throw new IllegalArgumentException("At least one the required attributes was not provided: "
+ + requiredAttributes.toString());
+ }
+
+ // Sanity check.
+ CharsetEncoder encoder = getEncoder();
+ try {
+ ByteBuffer encoded = encoder.encode(CharBuffer.wrap(new char [] { separatorChar }));
+ if (encoded.remaining() > 1) {
+ throw new IllegalArgumentException("Separator character is not a single byte in encoding "
+ + encoding + ": " + separatorChar);
+ }
+ this.separator = encoded.get();
+ } catch (CharacterCodingException e) {
+ throw new IllegalArgumentException("Separator character cannot be converted to a byte in "
+ + encoding + ": " + separatorChar, e);
+ }
+ }
+
+ /**
+ * Returns a new {@link CharsetDecoder} for the {@link #encoding}.
+ */
+ public CharsetDecoder getDecoder() {
+ try {
+ return charset.newDecoder().onMalformedInput(
+ CodingErrorAction.REPORT).onUnmappableCharacter(
+ CodingErrorAction.REPORT);
+ } catch (UnsupportedCharsetException e) {
+ throw new RuntimeException(
+ "FSA's encoding charset is not supported: " + encoding);
+ }
+ }
+
+ /**
+ * Returns a new {@link CharsetEncoder} for the {@link #encoding}.
+ */
+ public CharsetEncoder getEncoder() {
+ try {
+ return charset.newEncoder();
+ } catch (UnsupportedCharsetException e) {
+ throw new RuntimeException(
+ "FSA's encoding charset is not supported: " + encoding);
+ }
+ }
+
+ /**
+ * Return sequence encoder type.
+ */
+ public EncoderType getEncoderType() {
+ return encoderType;
+ }
+
+ /**
+ * Returns the {@link #separator} byte converted to a single <code>char</code>. Throws
+ * a {@link RuntimeException} if this conversion is for some reason impossible
+ * (the byte is a surrogate pair, FSA's {@link #encoding} is not available).
+ */
+ public char getSeparatorAsChar() {
+ return separatorChar;
+ }
+}
diff --git a/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryMetadataBuilder.java b/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryMetadataBuilder.java
new file mode 100644
index 0000000..7e85ecb
--- /dev/null
+++ b/morfologik-stemming/src/main/java/morfologik/stemming/DictionaryMetadataBuilder.java
@@ -0,0 +1,139 @@
+package morfologik.stemming;
+
+import java.nio.charset.Charset;
+import java.util.EnumMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Helper class to build {@link DictionaryMetadata} instances.
+ */
+public final class DictionaryMetadataBuilder {
+ private final EnumMap<DictionaryAttribute, String> attrs
+ = new EnumMap<DictionaryAttribute, String>(DictionaryAttribute.class);
+
+ public DictionaryMetadataBuilder separator(char c) {
+ this.attrs.put(DictionaryAttribute.SEPARATOR, Character.toString(c));
+ return this;
+ }
+
+ public DictionaryMetadataBuilder encoding(Charset charset) {
+ return encoding(charset.name());
+ }
+
+ public DictionaryMetadataBuilder encoding(String charsetName) {
+ this.attrs.put(DictionaryAttribute.ENCODING, charsetName);
+ return this;
+ }
+
+ public DictionaryMetadataBuilder frequencyIncluded() { return frequencyIncluded(false); }
+ public DictionaryMetadataBuilder frequencyIncluded(boolean v) { this.attrs.put(DictionaryAttribute.FREQUENCY_INCLUDED, Boolean.valueOf(v).toString()); return this; }
+
+ public DictionaryMetadataBuilder ignorePunctuation() { return ignorePunctuation(true); }
+ public DictionaryMetadataBuilder ignorePunctuation(boolean v) { this.attrs.put(DictionaryAttribute.IGNORE_PUNCTUATION, Boolean.valueOf(v).toString()); return this; }
+
+ public DictionaryMetadataBuilder ignoreNumbers() { return ignoreNumbers(true); }
+ public DictionaryMetadataBuilder ignoreNumbers(boolean v) { this.attrs.put(DictionaryAttribute.IGNORE_NUMBERS, Boolean.valueOf(v).toString()); return this; }
+
+ public DictionaryMetadataBuilder ignoreCamelCase() { return ignoreCamelCase(true); }
+ public DictionaryMetadataBuilder ignoreCamelCase(boolean v) { this.attrs.put(DictionaryAttribute.IGNORE_CAMEL_CASE, Boolean.valueOf(v).toString()); return this; }
+
+ public DictionaryMetadataBuilder ignoreAllUppercase() { return ignoreAllUppercase(true); }
+ public DictionaryMetadataBuilder ignoreAllUppercase(boolean v) { this.attrs.put(DictionaryAttribute.IGNORE_ALL_UPPERCASE, Boolean.valueOf(v).toString()); return this; }
+
+ public DictionaryMetadataBuilder ignoreDiacritics() { return ignoreDiacritics(true); }
+ public DictionaryMetadataBuilder ignoreDiacritics(boolean v) { this.attrs.put(DictionaryAttribute.IGNORE_DIACRITICS, Boolean.valueOf(v).toString()); return this; }
+
+ public DictionaryMetadataBuilder convertCase() { return convertCase(true); }
+ public DictionaryMetadataBuilder convertCase(boolean v) { this.attrs.put(DictionaryAttribute.CONVERT_CASE, Boolean.valueOf(v).toString()); return this; }
+
+ public DictionaryMetadataBuilder supportRunOnWords() { return supportRunOnWords(true); }
+ public DictionaryMetadataBuilder supportRunOnWords(boolean v) { this.attrs.put(DictionaryAttribute.RUN_ON_WORDS, Boolean.valueOf(v).toString()); return this; }
+
+ public DictionaryMetadataBuilder encoder(EncoderType type) {
+ this.attrs.put(DictionaryAttribute.ENCODER, type.name());
+ return this;
+ }
+
+ public DictionaryMetadataBuilder locale(Locale locale) {
+ return locale(locale.toString());
+ }
+
+ public DictionaryMetadataBuilder locale(String localeName) {
+ this.attrs.put(DictionaryAttribute.LOCALE, localeName);
+ return this;
+ }
+
+ public DictionaryMetadataBuilder withReplacementPairs(Map<String, List<String>> replacementPairs) {
+ StringBuilder builder = new StringBuilder();
+ for (Map.Entry<String,List<String>> e : replacementPairs.entrySet()) {
+ String k = e.getKey();
+ for (String v : e.getValue()) {
+ if (builder.length() > 0) builder.append(", ");
+ builder.append(k).append(" ").append(v);
+ }
+ }
+ this.attrs.put(DictionaryAttribute.REPLACEMENT_PAIRS, builder.toString());
+ return this;
+ }
+
+ public DictionaryMetadataBuilder withEquivalentChars(Map<Character, List<Character>> equivalentChars) {
+ StringBuilder builder = new StringBuilder();
+ for (Map.Entry<Character,List<Character>> e : equivalentChars.entrySet()) {
+ Character k = e.getKey();
+ for (Character v : e.getValue()) {
+ if (builder.length() > 0) builder.append(", ");
+ builder.append(k).append(" ").append(v);
+ }
+ }
+ this.attrs.put(DictionaryAttribute.EQUIVALENT_CHARS, builder.toString());
+ return this;
+ }
+
+ public DictionaryMetadataBuilder withInputConversionPairs(Map<String, String> conversionPairs) {
+ StringBuilder builder = new StringBuilder();
+ for (Map.Entry<String,String> e : conversionPairs.entrySet()) {
+ String k = e.getKey();
+ if (builder.length() > 0) builder.append(", ");
+ builder.append(k).append(" ").append(conversionPairs.get(k));
+ }
+ this.attrs.put(DictionaryAttribute.INPUT_CONVERSION, builder.toString());
+ return this;
+ }
+
+ public DictionaryMetadataBuilder withOutputConversionPairs(Map<String, String> conversionPairs) {
+ StringBuilder builder = new StringBuilder();
+ for (Map.Entry<String,String> e : conversionPairs.entrySet()) {
+ String k = e.getKey();
+ if (builder.length() > 0) builder.append(", ");
+ builder.append(k).append(" ").append(conversionPairs.get(k));
+ }
+ this.attrs.put(DictionaryAttribute.OUTPUT_CONVERSION, builder.toString());
+ return this;
+ }
+
+
+ public DictionaryMetadataBuilder author(String author) {
+ this.attrs.put(DictionaryAttribute.AUTHOR, author);
+ return this;
+ }
+
+ public DictionaryMetadataBuilder creationDate(String creationDate) {
+ this.attrs.put(DictionaryAttribute.CREATION_DATE, creationDate);
+ return this;
+ }
+
+ public DictionaryMetadataBuilder license(String license) {
+ this.attrs.put(DictionaryAttribute.LICENSE, license);
+ return this;
+ }
+
+ public DictionaryMetadata build() {
+ return new DictionaryMetadata(attrs);
+ }
+
+ public EnumMap<DictionaryAttribute, String> toMap() {
+ return new EnumMap<DictionaryAttribute, String>(attrs);
+ }
+}
diff --git a/morfologik-stemming/src/main/java/morfologik/stemming/EncoderType.java b/morfologik-stemming/src/main/java/morfologik/stemming/EncoderType.java
new file mode 100644
index 0000000..093cfbb
--- /dev/null
+++ b/morfologik-stemming/src/main/java/morfologik/stemming/EncoderType.java
@@ -0,0 +1,11 @@
+package morfologik.stemming;
+
+/**
+ * Sequence encoder type.
+ */
+public enum EncoderType {
+ SUFFIX,
+ PREFIX,
+ INFIX,
+ NONE;
+}
diff --git a/src/morfologik/stemming/IStemmer.java b/morfologik-stemming/src/main/java/morfologik/stemming/IStemmer.java
index 6e59526..6e59526 100644
--- a/src/morfologik/stemming/IStemmer.java
+++ b/morfologik-stemming/src/main/java/morfologik/stemming/IStemmer.java
diff --git a/src/morfologik/stemming/WordData.java b/morfologik-stemming/src/main/java/morfologik/stemming/WordData.java
index 4341bc4..a1bdaa0 100644
--- a/src/morfologik/stemming/WordData.java
+++ b/morfologik-stemming/src/main/java/morfologik/stemming/WordData.java
@@ -190,6 +190,14 @@ public final class WordData implements Cloneable {
throw new UnsupportedOperationException(COLLECTIONS_ERROR_MESSAGE);
}
+ @Override
+ public String toString() {
+ return "WordData["
+ + this.getWord() + ","
+ + this.getStem() + ","
+ + this.getTag() + "]";
+ }
+
/**
* Declare a covariant of {@link Object#clone()} that returns a deep copy of
* this object. The content of all internal buffers is copied.
@@ -230,8 +238,7 @@ public final class WordData implements Cloneable {
*/
private CharBuffer decode(ByteBuffer bytes, CharBuffer chars) {
chars.clear();
- final int maxCapacity = (int) (bytes.remaining() * decoder
- .maxCharsPerByte());
+ final int maxCapacity = (int) (bytes.remaining() * decoder.maxCharsPerByte());
if (chars.capacity() <= maxCapacity) {
chars = CharBuffer.allocate(maxCapacity);
}
diff --git a/morfologik-stemming/src/test/java/morfologik/stemming/DictionaryLookupTest.java b/morfologik-stemming/src/test/java/morfologik/stemming/DictionaryLookupTest.java
new file mode 100644
index 0000000..1fd4e62
--- /dev/null
+++ b/morfologik-stemming/src/test/java/morfologik/stemming/DictionaryLookupTest.java
@@ -0,0 +1,247 @@
+package morfologik.stemming;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+
+import morfologik.fsa.FSA;
+import morfologik.fsa.FSABuilder;
+import morfologik.fsa.FSAUtils;
+
+import org.junit.Test;
+
+/*
+ *
+ */
+public class DictionaryLookupTest {
+ /* */
+ @Test
+ public void testPrefixDictionaries() throws IOException {
+ final URL url = this.getClass().getResource("test-prefix.dict");
+ final IStemmer s = new DictionaryLookup(Dictionary.read(url));
+
+ assertArrayEquals(new String[] { "Rzeczpospolita", "subst:irreg" },
+ stem(s, "Rzeczypospolitej"));
+ assertArrayEquals(new String[] { "Rzeczpospolita", "subst:irreg" },
+ stem(s, "RzeczÄ…pospolitÄ…"));
+
+ // This word is not in the dictionary.
+ assertNoStemFor(s, "martygalski");
+ }
+
+ @Test
+ public void testInputConversion() throws IOException {
+ final URL url = this.getClass().getResource("test-prefix.dict");
+ final IStemmer s = new DictionaryLookup(Dictionary.read(url));
+
+ assertArrayEquals(new String[] { "Rzeczpospolita", "subst:irreg" },
+ stem(s, "Rzecz\\apospolit\\a"));
+
+ assertArrayEquals(new String[] { "Rzeczpospolita", "subst:irreg" },
+ stem(s, "krowa\\apospolit\\a"));
+ }
+
+ /* */
+ @Test
+ public void testInfixDictionaries() throws IOException {
+ final URL url = this.getClass().getResource("test-infix.dict");
+ final IStemmer s = new DictionaryLookup(Dictionary.read(url));
+
+ assertArrayEquals(new String[] { "Rzeczpospolita", "subst:irreg" },
+ stem(s, "Rzeczypospolitej"));
+ assertArrayEquals(new String[] { "Rzeczycki", "adj:pl:nom:m" }, stem(s,
+ "Rzeczyccy"));
+ assertArrayEquals(new String[] { "Rzeczpospolita", "subst:irreg" },
+ stem(s, "RzeczÄ…pospolitÄ…"));
+
+ // This word is not in the dictionary.
+ assertNoStemFor(s, "martygalski");
+ assertNoStemFor(s, "Rzeczyckiõh");
+ }
+
+ /* */
+ @Test
+ public void testWordDataIterator() throws IOException {
+ final URL url = this.getClass().getResource("test-infix.dict");
+ final DictionaryLookup s = new DictionaryLookup(Dictionary.read(url));
+
+ final HashSet<String> entries = new HashSet<String>();
+ for (WordData wd : s) {
+ entries.add(wd.getWord() + " " + wd.getStem() + " " + wd.getTag());
+ }
+
+ // Make sure a sample of the entries is present.
+ assertTrue(entries.contains("Rzekunia Rzekuń subst:sg:gen:m"));
+ assertTrue(entries
+ .contains("Rzeczkowskie Rzeczkowski adj:sg:nom.acc.voc:n+adj:pl:acc.nom.voc:f.n"));
+ assertTrue(entries
+ .contains("RzeczÄ…pospolitÄ… Rzeczpospolita subst:irreg"));
+ assertTrue(entries
+ .contains("Rzeczypospolita Rzeczpospolita subst:irreg"));
+ assertTrue(entries
+ .contains("Rzeczypospolitych Rzeczpospolita subst:irreg"));
+ assertTrue(entries
+ .contains("Rzeczyckiej Rzeczycki adj:sg:gen.dat.loc:f"));
+ }
+
+ /* */
+ @Test
+ public void testWordDataCloning() throws IOException {
+ final URL url = this.getClass().getResource("test-infix.dict");
+ final DictionaryLookup s = new DictionaryLookup(Dictionary.read(url));
+
+ ArrayList<WordData> words = new ArrayList<WordData>();
+ for (WordData wd : s) {
+ WordData clone = wd.clone();
+ words.add(clone);
+ }
+
+ // Reiterate and verify that we have the same entries.
+ final DictionaryLookup s2 = new DictionaryLookup(Dictionary.read(url));
+ int i = 0;
+ for (WordData wd : s2) {
+ WordData clone = words.get(i++);
+ assertEqualSequences(clone.getStem(), wd.getStem());
+ assertEqualSequences(clone.getTag(), wd.getTag());
+ assertEqualSequences(clone.getWord(), wd.getWord());
+ assertEqualSequences(clone.wordCharSequence, wd.wordCharSequence);
+ }
+
+ // Check collections contract.
+ final HashSet<WordData> entries = new HashSet<WordData>();
+ try {
+ entries.add(words.get(0));
+ fail();
+ } catch (RuntimeException e) {
+ // Expected.
+ }
+ }
+
+ private void assertEqualSequences(CharSequence s1, CharSequence s2) {
+ assertEquals(s1.toString(), s2.toString());
+ }
+
+ /* */
+ @Test
+ public void testMultibyteEncodingUTF8() throws IOException {
+ final URL url = this.getClass().getResource("test-diacritics-utf8.dict");
+ Dictionary read = Dictionary.read(url);
+ final IStemmer s = new DictionaryLookup(read);
+
+ for (byte[] ba : FSAUtils.rightLanguage(read.fsa, read.fsa.getRootNode())) {
+ System.out.println(new String(ba, "UTF-8"));
+ }
+
+ assertArrayEquals(new String[] { "merge", "001" }, stem(s, "mergeam"));
+ assertArrayEquals(new String[] { "merge", "002" }, stem(s, "merseserăm"));
+ }
+
+ /* */
+ @Test
+ public void testSynthesis() throws IOException {
+ final URL url = this.getClass().getResource("test-synth.dict");
+ final IStemmer s = new DictionaryLookup(Dictionary.read(url));
+
+ assertArrayEquals(new String[] { "miała", null }, stem(s,
+ "mieć|verb:praet:sg:ter:f:?perf"));
+ assertArrayEquals(new String[] { "a", null }, stem(s, "a|conj"));
+ assertArrayEquals(new String[] {}, stem(s, "dziecko|subst:sg:dat:n"));
+
+ // This word is not in the dictionary.
+ assertNoStemFor(s, "martygalski");
+ }
+
+ /* */
+ @Test
+ public void testInputWithSeparators() throws IOException {
+ final URL url = this.getClass().getResource("test-separators.dict");
+ final DictionaryLookup s = new DictionaryLookup(Dictionary.read(url));
+
+ /*
+ * Attemp to reconstruct input sequences using WordData iterator.
+ */
+ ArrayList<String> sequences = new ArrayList<String>();
+ for (WordData wd : s) {
+ sequences.add("" + wd.getWord() + " " + wd.getStem() + " "
+ + wd.getTag());
+ }
+ Collections.sort(sequences);
+
+ assertEquals("token1 null null", sequences.get(0));
+ assertEquals("token2 null null", sequences.get(1));
+ assertEquals("token3 null +", sequences.get(2));
+ assertEquals("token4 token2 null", sequences.get(3));
+ assertEquals("token5 token2 null", sequences.get(4));
+ assertEquals("token6 token2 +", sequences.get(5));
+ assertEquals("token7 token2 token3+", sequences.get(6));
+ assertEquals("token8 token2 token3++", sequences.get(7));
+ }
+
+ /* */
+ @Test
+ public void testSeparatorInLookupTerm() throws IOException {
+ FSA fsa = FSABuilder.build(toBytes("iso8859-1", new String [] {
+ "l+A+LW",
+ "l+A+NN1d",
+ }));
+
+ DictionaryMetadata metadata = new DictionaryMetadataBuilder()
+ .separator('+')
+ .encoding("iso8859-1")
+ .encoder(EncoderType.INFIX)
+ .build();
+
+ final DictionaryLookup s = new DictionaryLookup(new Dictionary(fsa, metadata));
+ assertEquals(0, s.lookup("l+A").size());
+ }
+
+ /* */
+ @Test
+ public void testGetSeparator() throws IOException {
+ final URL url = this.getClass().getResource("test-separators.dict");
+ final DictionaryLookup s = new DictionaryLookup(Dictionary.read(url));
+ assertEquals('+', s.getSeparatorChar());
+ }
+
+ private static byte[][] toBytes(String charset, String[] strings) {
+ byte [][] out = new byte [strings.length][];
+ for (int i = 0; i < strings.length; i++) {
+ try {
+ out[i] = strings[i].getBytes(charset);
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return out;
+ }
+
+ /* */
+ public static String asString(CharSequence s) {
+ if (s == null)
+ return null;
+ return s.toString();
+ }
+
+ /* */
+ public static String[] stem(IStemmer s, String word) {
+ ArrayList<String> result = new ArrayList<String>();
+ for (WordData wd : s.lookup(word)) {
+ result.add(asString(wd.getStem()));
+ result.add(asString(wd.getTag()));
+ }
+ return result.toArray(new String[result.size()]);
+ }
+
+ /* */
+ public static void assertNoStemFor(IStemmer s, String word) {
+ assertArrayEquals(new String[] {}, stem(s, word));
+ }
+}
diff --git a/morfologik-stemming/src/test/java/morfologik/stemming/DictionaryMetadataBuilderTest.java b/morfologik-stemming/src/test/java/morfologik/stemming/DictionaryMetadataBuilderTest.java
new file mode 100644
index 0000000..32e7fc7
--- /dev/null
+++ b/morfologik-stemming/src/test/java/morfologik/stemming/DictionaryMetadataBuilderTest.java
@@ -0,0 +1,49 @@
+package morfologik.stemming;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.Collections;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+
+import org.fest.assertions.api.Assertions;
+import org.junit.Test;
+
+/*
+ *
+ */
+public class DictionaryMetadataBuilderTest {
+ /* */
+ @Test
+ public void testAllConstantsHaveBuilderMethods() throws IOException {
+ Set<DictionaryAttribute> keySet = new DictionaryMetadataBuilder()
+ .convertCase()
+ .encoding(Charset.defaultCharset())
+ .encoding("UTF-8")
+ .frequencyIncluded()
+ .ignoreAllUppercase()
+ .ignoreCamelCase()
+ .ignoreDiacritics()
+ .ignoreNumbers()
+ .ignorePunctuation()
+ .separator('+')
+ .supportRunOnWords()
+ .encoder(EncoderType.SUFFIX)
+ .withEquivalentChars(Collections.<Character,List<Character>>emptyMap())
+ .withReplacementPairs(Collections.<String,List<String>>emptyMap())
+ .withInputConversionPairs(Collections.<String,String>emptyMap())
+ .withOutputConversionPairs(Collections.<String,String>emptyMap())
+ .locale(Locale.getDefault())
+ .license("")
+ .author("")
+ .creationDate("")
+ .toMap().keySet();
+
+ Set<DictionaryAttribute> all = EnumSet.allOf(DictionaryAttribute.class);
+ all.removeAll(keySet);
+
+ Assertions.assertThat(all).isEmpty();
+ }
+}
diff --git a/morfologik-stemming/src/test/java/morfologik/stemming/DictionaryTest.java b/morfologik-stemming/src/test/java/morfologik/stemming/DictionaryTest.java
new file mode 100644
index 0000000..13c61d7
--- /dev/null
+++ b/morfologik-stemming/src/test/java/morfologik/stemming/DictionaryTest.java
@@ -0,0 +1,27 @@
+package morfologik.stemming;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+
+/*
+ *
+ */
+public class DictionaryTest {
+ /* */
+
+ @Test
+ public void testConvertText() {
+ Map<String, String> conversion = new HashMap<String, String>();
+ conversion.put("'", "`");
+ conversion.put("fi", "ï¬");
+ conversion.put("\\a", "Ä…");
+ conversion.put("Barack", "George");
+ assertEquals("ï¬lut", Dictionary.convertText("filut", conversion));
+ assertEquals("ï¬zdrygaÅ‚kÄ…", Dictionary.convertText("fizdrygaÅ‚k\\a", conversion));
+ assertEquals("George Bush", Dictionary.convertText("Barack Bush", conversion));
+ }
+}
diff --git a/src-test/morfologik/stemming/StringDecoderBenchmarkTest.java b/morfologik-stemming/src/test/java/morfologik/stemming/StringDecoderBenchmarkTest.java
index e8c6c17..e8c6c17 100644
--- a/src-test/morfologik/stemming/StringDecoderBenchmarkTest.java
+++ b/morfologik-stemming/src/test/java/morfologik/stemming/StringDecoderBenchmarkTest.java
diff --git a/src-test/morfologik/stemming/test-diacritics-utf8.dict b/morfologik-stemming/src/test/resources/morfologik/stemming/test-diacritics-utf8.dict
index 2a62f21..2a62f21 100644
--- a/src-test/morfologik/stemming/test-diacritics-utf8.dict
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-diacritics-utf8.dict
Binary files differ
diff --git a/src-test/morfologik/stemming/test-diacritics-utf8.info b/morfologik-stemming/src/test/resources/morfologik/stemming/test-diacritics-utf8.info
index ec3a98e..058aed2 100644
--- a/src-test/morfologik/stemming/test-diacritics-utf8.info
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-diacritics-utf8.info
@@ -7,4 +7,3 @@ fsa.dict.encoding=UTF-8
fsa.dict.uses-prefixes=false
fsa.dict.uses-infixes=false
-
diff --git a/morfologik-stemming/src/test/resources/morfologik/stemming/test-infix.dict b/morfologik-stemming/src/test/resources/morfologik/stemming/test-infix.dict
new file mode 100644
index 0000000..cc91f70
--- /dev/null
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-infix.dict
Binary files differ
diff --git a/morfologik-stemming/src/test/resources/morfologik/stemming/test-infix.info b/morfologik-stemming/src/test/resources/morfologik/stemming/test-infix.info
new file mode 100644
index 0000000..535fac3
--- /dev/null
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-infix.info
@@ -0,0 +1,8 @@
+#
+# Dictionary properties.
+#
+
+fsa.dict.separator=+
+fsa.dict.encoding=iso-8859-2
+
+fsa.dict.uses-infixes=true \ No newline at end of file
diff --git a/src-test/morfologik/stemming/test-prefix.dict b/morfologik-stemming/src/test/resources/morfologik/stemming/test-prefix.dict
index d0bed4c..d0bed4c 100644
--- a/src-test/morfologik/stemming/test-prefix.dict
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-prefix.dict
Binary files differ
diff --git a/src-test/morfologik/stemming/test-prefix.info b/morfologik-stemming/src/test/resources/morfologik/stemming/test-prefix.info
index 59b5376..520739e 100644
--- a/src-test/morfologik/stemming/test-prefix.info
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-prefix.info
@@ -6,4 +6,6 @@ fsa.dict.separator=+
fsa.dict.encoding=iso-8859-2
fsa.dict.uses-prefixes=true
-fsa.dict.uses-infixes=false \ No newline at end of file
+fsa.dict.uses-infixes=false
+
+fsa.dict.input-conversion=\\a Ä…, krowa Rzecz \ No newline at end of file
diff --git a/src-test/morfologik/stemming/test-separators.dict b/morfologik-stemming/src/test/resources/morfologik/stemming/test-separators.dict
index a71b9e7..a71b9e7 100644
--- a/src-test/morfologik/stemming/test-separators.dict
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-separators.dict
Binary files differ
diff --git a/src-test/morfologik/stemming/test-separators.info b/morfologik-stemming/src/test/resources/morfologik/stemming/test-separators.info
index c4a260f..8ec14c3 100644
--- a/src-test/morfologik/stemming/test-separators.info
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-separators.info
@@ -6,4 +6,5 @@ fsa.dict.separator=+
fsa.dict.encoding=iso8859-1
fsa.dict.uses-prefixes=false
-fsa.dict.uses-infixes=false \ No newline at end of file
+fsa.dict.uses-infixes=false
+fsa.dict.uses-suffixes=false
diff --git a/src-test/morfologik/stemming/test-separators.txt b/morfologik-stemming/src/test/resources/morfologik/stemming/test-separators.txt
index cd77945..cd77945 100644
--- a/src-test/morfologik/stemming/test-separators.txt
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-separators.txt
diff --git a/src-test/morfologik/stemming/test-synth.dict b/morfologik-stemming/src/test/resources/morfologik/stemming/test-synth.dict
index 6890253..6890253 100644
--- a/src-test/morfologik/stemming/test-synth.dict
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-synth.dict
Binary files differ
diff --git a/src-test/morfologik/stemming/test-synth.info b/morfologik-stemming/src/test/resources/morfologik/stemming/test-synth.info
index ffce33e..ffce33e 100644
--- a/src-test/morfologik/stemming/test-synth.info
+++ b/morfologik-stemming/src/test/resources/morfologik/stemming/test-synth.info
diff --git a/morfologik-tools/pom.xml b/morfologik-tools/pom.xml
new file mode 100644
index 0000000..cafbb46
--- /dev/null
+++ b/morfologik-tools/pom.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-parent</artifactId>
+ <version>1.9.0</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>morfologik-tools</artifactId>
+ <packaging>jar</packaging>
+
+ <name>Morfologik Command Line Tools</name>
+ <description>Morfologik Command Line Tools</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-fsa</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.carrotsearch</groupId>
+ <artifactId>hppc</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-stemming</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-polish</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.carrotsearch.randomizedtesting</groupId>
+ <artifactId>randomizedtesting-runner</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.easytesting</groupId>
+ <artifactId>fest-assert-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <defaultGoal>install</defaultGoal>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>morfologik.tools.Launcher</mainClass>
+ <addClasspath>true</addClasspath>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>com.pyx4me</groupId>
+ <artifactId>proguard-maven-plugin</artifactId>
+ <version>2.0.4</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>proguard</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <assembly>
+ <inclusions>
+ <inclusion>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-fsa</artifactId>
+ </inclusion>
+ <inclusion>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-stemming</artifactId>
+ </inclusion>
+ <inclusion>
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-polish</artifactId>
+ </inclusion>
+ <inclusion>
+ <groupId>com.carrotsearch</groupId>
+ <artifactId>hppc</artifactId>
+ </inclusion>
+ <inclusion>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ </inclusion>
+ <inclusion>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </inclusion>
+ </inclusions>
+ </assembly>
+
+ <addMavenDescriptor>true</addMavenDescriptor>
+ <attach>true</attach>
+ <attachArtifactClassifier>standalone</attachArtifactClassifier>
+ <obfuscate>true</obfuscate>
+ <outputDirectory>${project.build.directory}</outputDirectory>
+ <proguardInclude>${basedir}/src/proguard/rules.pro</proguardInclude>
+ </configuration>
+
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.proguard</groupId>
+ <artifactId>proguard</artifactId>
+ <version>4.6-customized</version>
+ <scope>system</scope>
+ <systemPath>${project.basedir}/lib/proguard.jar</systemPath>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/src/morfologik/tools/FSABuildTool.java b/morfologik-tools/src/main/java/morfologik/tools/FSABuildTool.java
index 17ff102..687b6cb 100644
--- a/src/morfologik/tools/FSABuildTool.java
+++ b/morfologik-tools/src/main/java/morfologik/tools/FSABuildTool.java
@@ -1,11 +1,37 @@
package morfologik.tools;
-import java.io.*;
-import java.util.*;
-
-import morfologik.fsa.*;
-
-import org.apache.commons.cli.*;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Locale;
+import java.util.Map;
+import java.util.TreeMap;
+
+import morfologik.fsa.CFSA2Serializer;
+import morfologik.fsa.FSA;
+import morfologik.fsa.FSA5Serializer;
+import morfologik.fsa.FSABuilder;
+import morfologik.fsa.FSAFlags;
+import morfologik.fsa.FSAInfo;
+import morfologik.fsa.FSASerializer;
+import morfologik.fsa.FSAUtils;
+import morfologik.fsa.IMessageLogger;
+import morfologik.fsa.StateVisitor;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+import org.apache.commons.lang.StringEscapeUtils;
import com.carrotsearch.hppc.IntIntOpenHashMap;
import com.carrotsearch.hppc.cursors.IntIntCursor;
@@ -125,19 +151,23 @@ public final class FSABuildTool extends Tool {
logger = new WriterMessageLogger(new PrintWriter(System.err));
this.serializer.withLogger(logger);
+ BufferedInputStream inputStream = null;
try {
- InputStream inputStream = initializeInput(line);
+ inputStream = initializeInput(line);
if (inputSorted) {
logger.log("Assuming input is already sorted");
}
+ checkUtf8Bom(inputStream);
+
final FSA fsa;
if (inputSorted) {
fsa = processSortedInput(inputStream);
} else {
fsa = processUnsortedInput(inputStream);
}
+
if (crWarning) logger.log("Warning: input contained carriage returns?");
if (statistics) {
@@ -186,10 +216,34 @@ public final class FSABuildTool extends Tool {
logger.endPart();
} catch (OutOfMemoryError e) {
logger.log("Error: Out of memory. Pass -Xmx1024m argument (or more) to java.");
+ } finally {
+ if (inputStream != System.in && inputStream != null) {
+ inputStream.close();
+ }
}
}
/**
+ * Warn in case UTF-8 BOM is detected as this is 99% a mistake.
+ */
+ private void checkUtf8Bom(InputStream is) throws IOException {
+ if (!is.markSupported()) {
+ // throw a hard assertion.
+ throw new AssertionError("Mark should be supported on input stream.");
+ }
+
+ is.mark(3);
+ if (is.read() == 0xef &&
+ is.read() == 0xbb &&
+ is.read() == 0xbf) {
+ System.err.println("Warning: input starts with UTF-8 BOM bytes which is" +
+ " most likely not what you want. Use header-less UTF-8 file (unless you are" +
+ " encoding plain bytes in which case this message doesn't apply).");
+ }
+ is.reset();
+ }
+
+ /**
* Process unsorted input (sort and construct FSA).
*/
private FSA processUnsortedInput(InputStream inputStream)
@@ -223,11 +277,8 @@ public final class FSABuildTool extends Tool {
private byte [] current;
private byte [] previous = null;
private int previousLen;
- private int line;
public byte[] process(byte[] current, int currentLen) {
- line++;
-
// Verify the order.
if (previous != null) {
if (FSABuilder.compare(previous, 0, previousLen, current, 0, currentLen) > 0) {
@@ -297,17 +348,18 @@ public final class FSABuildTool extends Tool {
}
serializer = format.getSerializer();
+ Charset defaultCharset = Charset.defaultCharset();
opt = SharedOptions.fillerCharacterOption.getLongOpt();
if (line.hasOption(opt) && requiredCapability(opt, FSAFlags.SEPARATORS)) {
- String chr = line.getOptionValue(opt);
- checkSingleByte(chr);
+ String chr = StringEscapeUtils.unescapeJava(line.getOptionValue(opt));
+ checkSingleByte(chr, defaultCharset);
serializer.withFiller(chr.getBytes()[0]);
}
-
+
opt = SharedOptions.annotationSeparatorCharacterOption.getLongOpt();
if (line.hasOption(opt) && requiredCapability(opt, FSAFlags.SEPARATORS)) {
- String chr = line.getOptionValue(opt);
- checkSingleByte(chr);
+ String chr = StringEscapeUtils.unescapeJava(line.getOptionValue(opt));
+ checkSingleByte(chr, defaultCharset);
serializer.withAnnotationSeparator(chr.getBytes()[0]);
}
@@ -343,9 +395,10 @@ public final class FSABuildTool extends Tool {
* Check if the argument is a single byte after conversion using platform-default
* encoding.
*/
- public static void checkSingleByte(String chr) {
- if (chr.getBytes().length == 1)
- return;
+ public static byte checkSingleByte(String chr, Charset charset) {
+ byte bytes [] = chr.getBytes(charset);
+ if (bytes.length == 1)
+ return bytes[0];
throw new IllegalArgumentException("Filler and annotation characters must be single" +
"-byte values, " + chr + " has " + chr.getBytes().length + " bytes.");
@@ -434,7 +487,8 @@ public final class FSABuildTool extends Tool {
/**
*
*/
- private static OutputStream initializeOutput(CommandLine line)
+ @SuppressWarnings("resource")
+ private static OutputStream initializeOutput(CommandLine line)
throws IOException, ParseException {
final OutputStream output;
final String opt = SharedOptions.outputFileOption.getOpt();
@@ -451,7 +505,8 @@ public final class FSABuildTool extends Tool {
/**
*
*/
- private InputStream initializeInput(CommandLine line)
+ @SuppressWarnings("resource")
+ private BufferedInputStream initializeInput(CommandLine line)
throws IOException, ParseException {
final InputStream input;
final String opt = SharedOptions.inputFileOption.getOpt();
@@ -479,7 +534,7 @@ public final class FSABuildTool extends Tool {
/**
* Command line entry point.
*/
- public static void main(String[] args) throws Exception {
+ public static void main(String... args) throws Exception {
final FSABuildTool tool = new FSABuildTool();
tool.go(args);
}
diff --git a/src/morfologik/tools/FSADumpTool.java b/morfologik-tools/src/main/java/morfologik/tools/FSADumpTool.java
index 281d187..510d8e5 100644
--- a/src/morfologik/tools/FSADumpTool.java
+++ b/morfologik-tools/src/main/java/morfologik/tools/FSADumpTool.java
@@ -1,13 +1,27 @@
package morfologik.tools;
-import java.io.*;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.UnsupportedEncodingException;
+import java.io.Writer;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
+import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
-import morfologik.fsa.*;
-import morfologik.stemming.*;
+import morfologik.fsa.FSA;
+import morfologik.fsa.FSA5;
+import morfologik.fsa.FSAInfo;
+import morfologik.fsa.FSAUtils;
+import morfologik.stemming.Dictionary;
+import morfologik.stemming.DictionaryAttribute;
+import morfologik.stemming.DictionaryLookup;
+import morfologik.stemming.WordData;
import morfologik.util.FileUtils;
import org.apache.commons.cli.CommandLine;
@@ -20,11 +34,16 @@ import org.apache.commons.cli.Options;
*/
public final class FSADumpTool extends Tool {
/**
- * Writer used to print messages and dictionary dump.
+ * Direct binary stream used for dictionary dumps.
*/
private OutputStream os;
/**
+ * A writer for messages and any text-based output.
+ */
+ private Writer w;
+
+ /**
* Print raw data only, no headers.
*/
private boolean dataOnly;
@@ -73,12 +92,13 @@ public final class FSADumpTool extends Tool {
}
this.os = new BufferedOutputStream(System.out, 1024 * 32);
+ this.w = new OutputStreamWriter(os, "UTF-8");
if (hasMetadata(dictionaryFile)) {
dictionary = Dictionary.read(dictionaryFile);
fsa = dictionary.fsa;
- final String encoding = dictionary.metadata.encoding;
+ final String encoding = dictionary.metadata.getEncoding();
if (!Charset.isSupported(encoding)) {
printWarning("Dictionary's charset is not supported "
+ "on this JVM: " + encoding);
@@ -91,16 +111,15 @@ public final class FSADumpTool extends Tool {
}
printExtra("FSA properties");
- printExtra("--------------------");
- printExtra("FSA implementation : " + fsa.getClass().getName());
- printExtra("Compiled with flags : " + fsa.getFlags().toString());
+ printExtra("--------------");
+ printExtra("FSA implementation : " + fsa.getClass().getName());
+ printExtra("Compiled with flags : " + fsa.getFlags().toString());
if (!dataOnly) {
final FSAInfo info = new FSAInfo(fsa);
- printExtra("Number of arcs : "
- + info.arcsCount + "/" + info.arcsCountTotal);
- printExtra("Number of nodes : " + info.nodeCount);
- printExtra("Number of final st. : " + info.finalStatesCount);
+ printExtra("Number of arcs : " + info.arcsCount + "/" + info.arcsCountTotal);
+ printExtra("Number of nodes : " + info.nodeCount);
+ printExtra("Number of final states : " + info.finalStatesCount);
printExtra("");
}
@@ -109,33 +128,29 @@ public final class FSADumpTool extends Tool {
if (fsa instanceof FSA5) {
printExtra("FSA5 properties");
- printExtra("--------------------");
+ printExtra("---------------");
printFSA5((FSA5) fsa);
printExtra("");
}
if (dictionary != null) {
printExtra("Dictionary metadata");
- printExtra("--------------------");
- printExtra("Encoding : " + dictionary.metadata.encoding);
- printExtra("Separator byte : 0x"
- + Integer.toHexString(dictionary.metadata.separator)
- + " ('" + decodeSeparator(dictionary) + "')");
- printExtra("Uses prefixes : "
- + dictionary.metadata.usesPrefixes);
- printExtra("Uses infixes : "
- + dictionary.metadata.usesInfixes);
- printExtra("");
-
- printExtra("Dictionary metadata (all keys)");
- printExtra("---------------------------------");
-
- for (Map.Entry<String, String> e : dictionary.metadata.metadata
- .entrySet()) {
- printExtra(String
- .format("%-27s : %s", e.getKey(), e.getValue()));
- }
- printExtra("");
+ printExtra("-------------------");
+
+ Map<DictionaryAttribute,String> values =
+ new LinkedHashMap<DictionaryAttribute,String>(dictionary.metadata.getAttributes());
+ values.put(DictionaryAttribute.ENCODING, dictionary.metadata.getEncoding());
+ values.put(DictionaryAttribute.SEPARATOR, "0x"
+ + Integer.toHexString(dictionary.metadata.getSeparator())
+ + " ('" + dictionary.metadata.getSeparatorAsChar() + "')");
+
+ for (Map.Entry<DictionaryAttribute,String> e : values.entrySet()) {
+ printExtra(String.format(Locale.ENGLISH,
+ "%-40s: %s",
+ e.getKey().propertyName,
+ e.getValue()));
+ }
+ printExtra("");
}
int sequences = 0;
@@ -150,8 +165,7 @@ public final class FSADumpTool extends Tool {
final DictionaryLookup dl = new DictionaryLookup(dictionary);
final StringBuilder builder = new StringBuilder();
- final OutputStreamWriter osw = new OutputStreamWriter(os,
- dictionary.metadata.encoding);
+ final OutputStreamWriter osw = new OutputStreamWriter(os, dictionary.metadata.getEncoding());
CharSequence t;
for (WordData wd : dl) {
@@ -177,7 +191,6 @@ public final class FSADumpTool extends Tool {
osw.flush();
} else {
if (dot) {
- Writer w = new OutputStreamWriter(os);
FSAUtils.toDot(w, fsa, fsa.getRootNode());
w.flush();
} else {
@@ -209,10 +222,10 @@ public final class FSADumpTool extends Tool {
* Print {@link FSA5}-specific stuff.
*/
private void printFSA5(FSA5 fsa) throws IOException {
- printExtra("GTL : " + fsa.gtl);
- printExtra("Node extra data : " + fsa.nodeDataLength);
- printExtra("Annotation separator: " + byteAsChar(fsa.annotation));
- printExtra("Filler character : " + byteAsChar(fsa.filler));
+ printExtra("GTL : " + fsa.gtl);
+ printExtra("Node extra data : " + fsa.nodeDataLength);
+ printExtra("Annotation separator : " + byteAsChar(fsa.annotation));
+ printExtra("Filler character : " + byteAsChar(fsa.filler));
}
/**
@@ -232,8 +245,9 @@ public final class FSADumpTool extends Tool {
private void printExtra(String msg) throws IOException {
if (dataOnly)
return;
- os.write(msg.getBytes());
- os.write(0x0a);
+ w.write(msg);
+ w.write('\n');
+ w.flush();
}
/*
@@ -243,19 +257,6 @@ public final class FSADumpTool extends Tool {
System.err.println(msg);
}
- /*
- *
- */
- private String decodeSeparator(Dictionary dictionary) {
- try {
- return new String(new byte[] { dictionary.metadata.separator },
- dictionary.metadata.encoding);
- } catch (UnsupportedEncodingException e) {
- return "<unsupported encoding: " + dictionary.metadata.encoding
- + ">";
- }
- }
-
/**
* Check if there is a metadata file for the given FSA automaton.
*/
@@ -279,7 +280,7 @@ public final class FSADumpTool extends Tool {
/**
* Command line entry point.
*/
- public static void main(String[] args) throws Exception {
+ public static void main(String... args) throws Exception {
final FSADumpTool fsaDump = new FSADumpTool();
fsaDump.go(args);
}
diff --git a/src/morfologik/tools/InflectionFramesTool.java b/morfologik-tools/src/main/java/morfologik/tools/InflectionFramesTool.java
index 612f62c..e913b7f 100644
--- a/src/morfologik/tools/InflectionFramesTool.java
+++ b/morfologik-tools/src/main/java/morfologik/tools/InflectionFramesTool.java
@@ -9,8 +9,6 @@ import java.util.Map.Entry;
import morfologik.stemming.*;
import morfologik.stemming.Dictionary;
-import org.junit.Test;
-
/**
* Calculate inflection frames from the Polish dictionary.
*/
@@ -20,15 +18,11 @@ public class InflectionFramesTool {
}
/* */
- @Test
@SuppressWarnings( { "unused" })
public void inflectionFrames() throws IOException {
final Dictionary pl = Dictionary.getForLanguage("pl");
final DictionaryLookup dict = new DictionaryLookup(pl);
-
- final CharsetDecoder decoder = Charset.forName(pl.metadata.encoding)
- .newDecoder().onMalformedInput(CodingErrorAction.REPORT)
- .onUnmappableCharacter(CodingErrorAction.REPORT);
+ final CharsetDecoder decoder = pl.metadata.getDecoder();
final HashMap<String, ArrayList<String>> forms =
new HashMap<String, ArrayList<String>>();
@@ -55,7 +49,7 @@ public class InflectionFramesTool {
stemBuffer.clear();
stemBuffer = wd.getStemBytes(stemBuffer);
- stemDecoded = DictionaryLookup.decodeStem(stemDecoded, stemBuffer
+ stemDecoded = DictionaryLookup.decodeBaseForm(stemDecoded, stemBuffer
.array(), stemBuffer.remaining(), inflBuffer, pl.metadata);
stemDecoded.flip();
diff --git a/src/morfologik/tools/Launcher.java b/morfologik-tools/src/main/java/morfologik/tools/Launcher.java
index 667a6e1..320c1dc 100644
--- a/src/morfologik/tools/Launcher.java
+++ b/morfologik-tools/src/main/java/morfologik/tools/Launcher.java
@@ -47,9 +47,8 @@ public final class Launcher {
}
if (args.length == 0) {
- System.out
- .println("Provide tool name and its command-line options. "
- + "Available tools:");
+ System.out.println("Provide tool name and its command-line options. "
+ + "Available tools:");
for (String key : tools.keySet()) {
final ToolInfo toolInfo = tools.get(key);
System.out.println(String.format(" %-10s - %s", key,
diff --git a/morfologik-tools/src/main/java/morfologik/tools/MorphEncodingTool.java b/morfologik-tools/src/main/java/morfologik/tools/MorphEncodingTool.java
new file mode 100644
index 0000000..dfade2d
--- /dev/null
+++ b/morfologik-tools/src/main/java/morfologik/tools/MorphEncodingTool.java
@@ -0,0 +1,255 @@
+package morfologik.tools;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Locale;
+
+import morfologik.fsa.FSA5;
+import morfologik.stemming.EncoderType;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+import org.apache.commons.lang.StringEscapeUtils;
+
+
+/**
+ * This utility converts the dictionary in a text (tabbed) format into
+ * the format accepted by the fsa building tools. It is meant to replace
+ * the Perl and AWK scripts from the original FSA package.
+ */
+class MorphEncodingTool extends Tool {
+ private static Charset US_ASCII = Charset.forName("US-ASCII");
+ private boolean noWarn = false;
+ private SequenceAssembler encoder;
+ private byte separatorByte;
+ private char separator;
+
+ /**
+ *
+ */
+ protected void go(final CommandLine line) throws Exception {
+ noWarn = line.hasOption(SharedOptions.noWarnIfTwoFields.getOpt());
+
+ EncoderType encType = EncoderType.SUFFIX;
+ if (line.hasOption(SharedOptions.encoder.getOpt())) {
+ String encValue = line.getOptionValue(SharedOptions.encoder.getOpt());
+ try {
+ encType = EncoderType.valueOf(encValue.toUpperCase());
+ } catch (IllegalArgumentException e) {
+ throw new IllegalArgumentException("Invalid encoder: " + encValue + ", "
+ + "allowed values: " + Arrays.toString(EncoderType.values()));
+ }
+ }
+
+ separator = FSA5.DEFAULT_ANNOTATION;
+ if (line.hasOption(SharedOptions.annotationSeparatorCharacterOption.getLongOpt())) {
+ String sep = line.getOptionValue(SharedOptions.annotationSeparatorCharacterOption.getLongOpt());
+
+ // Decode escape sequences.
+ sep = StringEscapeUtils.unescapeJava(sep);
+ if (sep.length() != 1) {
+ throw new IllegalArgumentException("Field separator must be a single character: " + sep);
+ }
+ if (sep.charAt(0) > 0xff) {
+ throw new IllegalArgumentException("Field separator not within byte range: " + (int) sep.charAt(0));
+ }
+ separator = sep.charAt(0);
+ separatorByte = FSABuildTool.checkSingleByte(Character.toString(separator), Charset.defaultCharset());
+ }
+
+ encoder = new SequenceAssembler(SequenceEncoders.forType(encType), (byte) separator);
+
+ // Determine input and output streams.
+ final DataInputStream input = initializeInput(line);
+ final DataOutputStream output = initializeOutput(line);
+
+ try {
+ process(input, output);
+ output.flush();
+
+ } finally {
+ input.close();
+ output.close();
+ }
+ }
+
+ /**
+ * Process input stream, writing to output stream.
+ *
+ */
+ protected void process(final DataInputStream input, final DataOutputStream output)
+ throws IOException {
+ long lnumber = 0;
+ try {
+ int bufPos = 0;
+ byte[] buf = new byte[0];
+ ArrayList<byte[]> columns = new ArrayList<byte[]>();
+ int dataByte;
+ do {
+ dataByte = input.read();
+ switch (dataByte) {
+ case '\r':
+ // Ignore CR
+ continue;
+
+ case '\t':
+ columns.add(Arrays.copyOf(buf, bufPos));
+ bufPos = 0;
+ break;
+
+ case -1:
+ // Process EOF as if we encountered \n. fall-through.
+
+ case '\n':
+ lnumber++;
+ if (bufPos == 0 && columns.isEmpty()) {
+ if (dataByte != -1) {
+ System.err.println(String.format(Locale.ROOT,
+ "Ignoring empty line %d.", lnumber));
+ }
+ break;
+ }
+
+ columns.add(Arrays.copyOf(buf, bufPos));
+
+ if (columns.size() < 2 || columns.size() > 3) {
+ throw new IllegalArgumentException(
+ String.format(Locale.ROOT, "Every \\n-delimited 'line' must contain 2 or 3 columns, line %d has %d. US-ASCII version of this line: %s",
+ lnumber,
+ columns.size(),
+ toAscii(columns)));
+ }
+
+ if (columns.size() == 2 && !noWarn) {
+ System.err.println(String.format(Locale.ROOT,
+ "Line %d has %d columns. US-ASCII version of this line: %s",
+ lnumber,
+ columns.size(),
+ toAscii(columns)));
+ }
+
+ byte [] wordForm = columns.get(0);
+ byte [] wordLemma = columns.get(1);
+ if (contains(wordForm, separatorByte) ||
+ contains(wordLemma, separatorByte)) {
+ throw new IllegalArgumentException(
+ String.format(Locale.ROOT,
+ "Either word or lemma in line %d contain the annotation byte '%s': %s",
+ lnumber,
+ separator,
+ toAscii(columns)));
+ }
+
+ output.write(encoder.encode(
+ wordForm,
+ wordLemma,
+ columns.size() > 2 ? columns.get(2) : null));
+
+ output.writeByte('\n');
+
+ bufPos = 0;
+ columns.clear();
+ break;
+
+ default:
+ if (bufPos >= buf.length) {
+ buf = Arrays.copyOf(buf, buf.length + 1024);
+ }
+ buf[bufPos++] = (byte) dataByte;
+ }
+ } while (dataByte != -1);
+ } finally {
+ input.close();
+ }
+ }
+
+ private boolean contains(byte [] seq, byte b) {
+ for (int i = 0; i < seq.length; i++) {
+ if (seq[i] == b) return true;
+ }
+ return false;
+ }
+
+ private String toAscii(ArrayList<byte []> columns)
+ {
+ StringBuilder b = new StringBuilder();
+ for (int i = 0; i < columns.size(); i++) {
+ if (i > 0) b.append("\t");
+ b.append(new String(columns.get(i), US_ASCII));
+ }
+ return b.toString();
+ }
+
+ /**
+ * Command line options for the tool.
+ */
+ protected void initializeOptions(Options options) {
+ options.addOption(SharedOptions.inputFileOption);
+ options.addOption(SharedOptions.outputFileOption);
+ options.addOption(SharedOptions.encoder);
+ options.addOption(SharedOptions.noWarnIfTwoFields);
+ options.addOption(SharedOptions.annotationSeparatorCharacterOption);
+ }
+
+ /**
+ *
+ */
+ private static DataOutputStream initializeOutput(CommandLine line)
+ throws IOException, ParseException {
+ final DataOutputStream output;
+ final String opt = SharedOptions.outputFileOption.getOpt();
+ if (line.hasOption(opt)) {
+ // Use output file.
+ output = new DataOutputStream(
+ new BufferedOutputStream(
+ new FileOutputStream((File) line
+ .getParsedOptionValue(opt))));
+ } else {
+ // Use standard output.
+ output = new DataOutputStream(
+ new BufferedOutputStream(
+ System.out));
+ }
+ return output;
+ }
+
+ /**
+ *
+ */
+ private static DataInputStream initializeInput(CommandLine line)
+ throws IOException, ParseException {
+ final DataInputStream input;
+ final String opt = SharedOptions.inputFileOption.getOpt();
+ if (line.hasOption(opt)) {
+ // Use input file.
+ input = new DataInputStream (
+ new BufferedInputStream(
+ new FileInputStream((File) line
+ .getParsedOptionValue(opt))));
+ } else {
+ // Use standard input.
+ input = new DataInputStream(
+ new BufferedInputStream(
+ System.in));
+ }
+ return input;
+ }
+
+ /**
+ * Command line entry point.
+ */
+ public static void main(String... args) throws Exception {
+ final MorphEncodingTool tool = new MorphEncodingTool();
+ tool.go(args);
+ }
+} \ No newline at end of file
diff --git a/src/morfologik/tools/PolishStemmingTool.java b/morfologik-tools/src/main/java/morfologik/tools/PolishStemmingTool.java
index 0abd897..22c84c3 100644
--- a/src/morfologik/tools/PolishStemmingTool.java
+++ b/morfologik-tools/src/main/java/morfologik/tools/PolishStemmingTool.java
@@ -33,8 +33,8 @@ class PolishStemmingTool extends Tool {
final String outputEncoding = getEncodingOption(line,
SharedOptions.outputEncodingOption.getOpt());
- System.out.println("Input encoding: " + inputEncoding);
- System.out.println("Output encoding: " + outputEncoding);
+ System.err.println("Input encoding: " + inputEncoding);
+ System.err.println("Output encoding: " + outputEncoding);
// Determine input and output streams.
final Reader input = initializeInput(line, inputEncoding);
@@ -131,6 +131,7 @@ class PolishStemmingTool extends Tool {
.getParsedOptionValue(opt))), outputEncoding);
} else {
// Use standard output.
+ System.err.println("Using standard output for output.");
output = new OutputStreamWriter(System.out, outputEncoding);
}
return output;
@@ -151,6 +152,7 @@ class PolishStemmingTool extends Tool {
.getParsedOptionValue(opt))), inputEncoding);
} else {
// Use standard input.
+ System.err.println("Using standard input for input.");
input = new InputStreamReader(System.in, inputEncoding);
}
return input;
diff --git a/morfologik-tools/src/main/java/morfologik/tools/SequenceAssembler.java b/morfologik-tools/src/main/java/morfologik/tools/SequenceAssembler.java
new file mode 100644
index 0000000..e5fd388
--- /dev/null
+++ b/morfologik-tools/src/main/java/morfologik/tools/SequenceAssembler.java
@@ -0,0 +1,46 @@
+package morfologik.tools;
+
+import morfologik.fsa.FSA5;
+import morfologik.tools.SequenceEncoders.IEncoder;
+
+import com.carrotsearch.hppc.ByteArrayList;
+
+final class SequenceAssembler {
+ private final byte annotationSeparator;
+
+ private final ByteArrayList src = new ByteArrayList();
+ private final ByteArrayList dst = new ByteArrayList();
+ private final ByteArrayList tmp = new ByteArrayList();
+
+ private final IEncoder encoder;
+
+ public SequenceAssembler(SequenceEncoders.IEncoder encoder) {
+ this(encoder, FSA5.DEFAULT_ANNOTATION);
+ }
+
+ public SequenceAssembler(SequenceEncoders.IEncoder encoder, byte annotationSeparator) {
+ this.annotationSeparator = annotationSeparator;
+ this.encoder = encoder;
+ }
+
+ byte [] encode(byte [] wordForm, byte [] wordLemma, byte [] wordTag)
+ {
+ src.clear();
+ dst.clear();
+ tmp.clear();
+
+ tmp.add(wordForm);
+ tmp.add(annotationSeparator);
+
+ src.add(wordForm);
+ dst.add(wordLemma);
+ encoder.encode(src, dst, tmp);
+
+ tmp.add(annotationSeparator);
+ if (wordTag != null) {
+ tmp.add(wordTag);
+ }
+
+ return tmp.toArray();
+ }
+}
diff --git a/morfologik-tools/src/main/java/morfologik/tools/SequenceEncoders.java b/morfologik-tools/src/main/java/morfologik/tools/SequenceEncoders.java
new file mode 100644
index 0000000..37cd0cc
--- /dev/null
+++ b/morfologik-tools/src/main/java/morfologik/tools/SequenceEncoders.java
@@ -0,0 +1,361 @@
+package morfologik.tools;
+
+import morfologik.stemming.EncoderType;
+
+import com.carrotsearch.hppc.ByteArrayList;
+
+/**
+ * Container class for sequence encoders.
+ */
+public final class SequenceEncoders {
+ private SequenceEncoders() {}
+
+ /**
+ * Maximum encodable single-byte code.
+ */
+ private static final int REMOVE_EVERYTHING = 255;
+
+ public static interface IEncoder {
+ public ByteArrayList encode(ByteArrayList src, ByteArrayList derived, ByteArrayList encodedBuffer);
+ public ByteArrayList decode(ByteArrayList src, ByteArrayList encoded, ByteArrayList derivedBuffer);
+ public EncoderType type();
+ }
+
+ /**
+ * Encodes <code>dst</code> relative to <code>src</code> by trimming
+ * whatever non-equal suffix <code>src</code> has. The output code is (bytes):
+ * <pre>
+ * {K}{suffix}
+ * </pre>
+ * where (<code>K</code> - 'A') bytes should be trimmed from the end of <code>src</code>
+ * and then the <code>suffix</code> should be appended to the resulting byte sequence.
+ *
+ * <p>Examples:</p>
+ * <pre>
+ * src: foo
+ * dst: foobar
+ * encoded: Abar
+ *
+ * src: foo
+ * dst: bar
+ * encoded: Dbar
+ * </pre>
+ *
+ * <p><strong>Note:</strong> The code length is a single byte. If equal to
+ * {@link SequenceEncoders#REMOVE_EVERYTHING} the entire <code>src</code> sequence
+ * should be discarded.</p>
+ */
+ public static class TrimSuffixEncoder implements IEncoder {
+ public ByteArrayList encode(ByteArrayList src, ByteArrayList dst, ByteArrayList encoded) {
+ int sharedPrefix = sharedPrefixLength(src, dst);
+ int truncateBytes = src.size() - sharedPrefix;
+ if (truncateBytes >= REMOVE_EVERYTHING) {
+ truncateBytes = REMOVE_EVERYTHING;
+ sharedPrefix = 0;
+ }
+
+ final byte suffixTrimCode = (byte) (truncateBytes + 'A');
+ encoded.add(suffixTrimCode);
+ encoded.add(dst.buffer, sharedPrefix, dst.size() - sharedPrefix);
+
+ return encoded;
+ }
+
+ public ByteArrayList decode(ByteArrayList src, ByteArrayList encoded, ByteArrayList dst) {
+ int suffixTrimCode = encoded.get(0);
+ int truncateBytes = (suffixTrimCode - 'A') & 0xFF;
+ if (truncateBytes == REMOVE_EVERYTHING) {
+ truncateBytes = src.size();
+ }
+
+ dst.add(src.buffer, 0, src.size() - truncateBytes);
+ dst.add(encoded.buffer, 1, encoded.size() - 1);
+
+ return dst;
+ }
+
+ @Override
+ public EncoderType type() {
+ return EncoderType.SUFFIX;
+ }
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName();
+ }
+ }
+
+ /**
+ * Encodes <code>dst</code> relative to <code>src</code> by trimming
+ * whatever non-equal suffix and prefix <code>src</code> and <code>dst</code> have.
+ * The output code is (bytes):
+ * <pre>
+ * {P}{K}{suffix}
+ * </pre>
+ * where (<code>P</code> - 'A') bytes should be trimmed from the start of <code>src</code>,
+ * (<code>K</code> - 'A') bytes should be trimmed from the end of <code>src</code>
+ * and then the <code>suffix</code> should be appended to the resulting byte sequence.
+ *
+ * <p>Examples:</p>
+ * <pre>
+ * src: abc
+ * dst: abcd
+ * encoded: AAd
+ *
+ * src: abc
+ * dst: xyz
+ * encoded: ADxyz
+ * </pre>
+ *
+ * <p><strong>Note:</strong> Each code's length is a single byte. If any is equal to
+ * {@link SequenceEncoders#REMOVE_EVERYTHING} the entire <code>src</code> sequence
+ * should be discarded.</p>
+ */
+ public static class TrimPrefixAndSuffixEncoder implements IEncoder {
+ public ByteArrayList encode(ByteArrayList src, ByteArrayList dst, ByteArrayList encoded) {
+ // Search for the maximum matching subsequence that can be encoded.
+ int maxSubsequenceLength = 0;
+ int maxSubsequenceIndex = 0;
+ for (int i = 0; i < src.size(); i++) {
+ // prefix at i => shared subsequence (infix)
+ int sharedPrefix = sharedPrefixLength(src, i, dst, 0);
+ // Only update maxSubsequenceLength if we will be able to encode it.
+ if (sharedPrefix > maxSubsequenceLength
+ && i < REMOVE_EVERYTHING
+ && (src.size() - (i + sharedPrefix)) < REMOVE_EVERYTHING) {
+ maxSubsequenceLength = sharedPrefix;
+ maxSubsequenceIndex = i;
+ }
+ }
+
+ // Determine how much to remove (and where) from src to get a prefix of dst.
+ int truncatePrefixBytes = maxSubsequenceIndex;
+ int truncateSuffixBytes = (src.size() - (maxSubsequenceIndex + maxSubsequenceLength));
+ if (truncatePrefixBytes >= REMOVE_EVERYTHING ||
+ truncateSuffixBytes >= REMOVE_EVERYTHING) {
+ maxSubsequenceIndex = maxSubsequenceLength = 0;
+ truncatePrefixBytes = truncateSuffixBytes = REMOVE_EVERYTHING;
+ }
+
+ encoded.add((byte) ((truncatePrefixBytes + 'A') & 0xFF));
+ encoded.add((byte) ((truncateSuffixBytes + 'A') & 0xFF));
+ encoded.add(dst.buffer, maxSubsequenceLength, dst.size() - maxSubsequenceLength);
+
+ return encoded;
+ }
+
+ public ByteArrayList decode(ByteArrayList src, ByteArrayList encoded, ByteArrayList dst) {
+ int truncatePrefixBytes = (encoded.get(0) - 'A') & 0xFF;
+ int truncateSuffixBytes = (encoded.get(1) - 'A') & 0xFF;
+
+ if (truncatePrefixBytes == REMOVE_EVERYTHING ||
+ truncateSuffixBytes == REMOVE_EVERYTHING) {
+ truncatePrefixBytes = src.size();
+ truncateSuffixBytes = 0;
+ }
+
+ dst.add(src.buffer, truncatePrefixBytes, src.size() - (truncateSuffixBytes + truncatePrefixBytes));
+ dst.add(encoded.buffer, 2, encoded.size() - 2);
+
+ return dst;
+ }
+
+ @Override
+ public EncoderType type() {
+ return EncoderType.PREFIX;
+ }
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName();
+ }
+ }
+
+ /**
+ * Encodes <code>dst</code> relative to <code>src</code> by trimming
+ * whatever non-equal suffix and infix <code>src</code> and <code>dst</code> have.
+ * The output code is (bytes):
+ * <pre>
+ * {X}{L}{K}{suffix}
+ * </pre>
+ * where <code>src's</code> infix at position (<code>X</code> - 'A') and of length
+ * (<code>L</code> - 'A') should be removed, then (<code>K</code> - 'A') bytes
+ * should be trimmed from the end
+ * and then the <code>suffix</code> should be appended to the resulting byte sequence.
+ *
+ * <p>Examples:</p>
+ * <pre>
+ * src: ayz
+ * dst: abc
+ * encoded: AACbc
+ *
+ * src: aillent
+ * dst: aller
+ * encoded: BBCr
+ * </pre>
+ *
+ * <p><strong>Note:</strong> Each code's length is a single byte. If any is equal to
+ * {@link SequenceEncoders#REMOVE_EVERYTHING} the entire <code>src</code> sequence
+ * should be discarded.</p>
+ */
+ public static class TrimInfixAndSuffixEncoder implements IEncoder {
+ ByteArrayList scratch = new ByteArrayList();
+
+ public ByteArrayList encode(ByteArrayList src, ByteArrayList dst, ByteArrayList encoded) {
+ // Search for the infix that can we can encode and remove from src
+ // to get a maximum-length prefix of dst. This could be done more efficiently
+ // by running a smarter longest-common-subsequence algorithm and some pruning (?).
+ //
+ // For now, naive loop should do.
+
+ // There can be only two positions for the infix to delete:
+ // 1) we remove leading bytes, even if they are partially matching (but a longer match
+ // exists somewhere later on).
+ // 2) we leave max. matching prefix and remove non-matching bytes that follow.
+ int maxInfixIndex = 0;
+ int maxSubsequenceLength = sharedPrefixLength(src, dst);
+ int maxInfixLength = 0;
+ for (int i : new int [] {0, maxSubsequenceLength}) {
+ for (int j = 1; j <= src.size() - i; j++) {
+ // Compute temporary src with the infix removed.
+ // Concatenate in scratch space for simplicity.
+ scratch.clear();
+ scratch.add(src.buffer, 0, i);
+ scratch.add(src.buffer, i + j, src.size() - (i + j));
+
+ int sharedPrefix = sharedPrefixLength(scratch, dst);
+
+ // Only update maxSubsequenceLength if we will be able to encode it.
+ if (sharedPrefix > 0 &&
+ sharedPrefix > maxSubsequenceLength &&
+ i < REMOVE_EVERYTHING &&
+ j < REMOVE_EVERYTHING) {
+ maxSubsequenceLength = sharedPrefix;
+ maxInfixIndex = i;
+ maxInfixLength = j;
+ }
+ }
+ }
+
+ int truncateSuffixBytes = src.size() - (maxInfixLength + maxSubsequenceLength);
+
+ // Special case: if we're removing the suffix in the infix code, move it
+ // to the suffix code instead.
+ if (truncateSuffixBytes == 0 &&
+ maxInfixIndex + maxInfixLength == src.size()) {
+ truncateSuffixBytes = maxInfixLength;
+ maxInfixIndex = maxInfixLength = 0;
+ }
+
+
+ if (maxInfixIndex >= REMOVE_EVERYTHING ||
+ maxInfixLength >= REMOVE_EVERYTHING ||
+ truncateSuffixBytes >= REMOVE_EVERYTHING) {
+ maxInfixIndex = maxSubsequenceLength = 0;
+ maxInfixLength = truncateSuffixBytes = REMOVE_EVERYTHING;
+ }
+
+ encoded.add((byte) ((maxInfixIndex + 'A') & 0xFF));
+ encoded.add((byte) ((maxInfixLength + 'A') & 0xFF));
+ encoded.add((byte) ((truncateSuffixBytes + 'A') & 0xFF));
+ encoded.add(dst.buffer, maxSubsequenceLength, dst.size() - maxSubsequenceLength);
+
+ return encoded;
+ }
+
+ public ByteArrayList decode(ByteArrayList src, ByteArrayList encoded, ByteArrayList dst) {
+ int infixIndex = (encoded.get(0) - 'A') & 0xFF;
+ int infixLength = (encoded.get(1) - 'A') & 0xFF;
+ int truncateSuffixBytes = (encoded.get(2) - 'A') & 0xFF;
+
+ if (infixLength == REMOVE_EVERYTHING ||
+ truncateSuffixBytes == REMOVE_EVERYTHING) {
+ infixIndex = 0;
+ infixLength = src.size();
+ truncateSuffixBytes = 0;
+ }
+
+ dst.add(src.buffer, 0, infixIndex);
+ dst.add(src.buffer, infixIndex + infixLength, src.size() - (infixIndex + infixLength + truncateSuffixBytes));
+ dst.add(encoded.buffer, 3, encoded.size() - 3);
+
+ return dst;
+ }
+
+ @Override
+ public EncoderType type() {
+ return EncoderType.INFIX;
+ }
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName();
+ }
+ }
+
+ /**
+ *
+ */
+ public static class CopyEncoder implements IEncoder {
+ @Override
+ public ByteArrayList encode(ByteArrayList src, ByteArrayList derived, ByteArrayList encodedBuffer)
+ {
+ encodedBuffer.add(derived.buffer, 0, derived.size());
+ return encodedBuffer;
+ }
+
+ @Override
+ public ByteArrayList decode(ByteArrayList src, ByteArrayList encoded, ByteArrayList derivedBuffer)
+ {
+ derivedBuffer.add(encoded.buffer, 0, encoded.size());
+ return derivedBuffer;
+ }
+
+ @Override
+ public EncoderType type() {
+ return EncoderType.NONE;
+ }
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName();
+ }
+ }
+
+ /**
+ * Compute the length of the shared prefix between two byte sequences.
+ */
+ private static int sharedPrefixLength(ByteArrayList a, ByteArrayList b) {
+ final int max = Math.min(a.size(), b.size());
+ int i = 0;
+ while (i < max && a.get(i) == b.get(i)) {
+ i++;
+ }
+ return i;
+ }
+
+ /**
+ * Compute the length of the shared prefix between two byte sequences.
+ */
+ private static int sharedPrefixLength(ByteArrayList a, int aStart, ByteArrayList b, int bStart) {
+
+ int i = 0;
+ while (aStart < a.size() &&
+ bStart < b.size() &&
+ a.get(aStart++) == b.get(bStart++)) {
+ i++;
+ }
+ return i;
+ }
+
+ public static IEncoder forType(EncoderType encType)
+ {
+ switch (encType) {
+ case INFIX: return new TrimInfixAndSuffixEncoder();
+ case PREFIX: return new TrimPrefixAndSuffixEncoder();
+ case SUFFIX: return new TrimSuffixEncoder();
+ case NONE: return new CopyEncoder();
+ }
+ throw new RuntimeException("Unknown encoder: " + encType);
+ }
+}
diff --git a/src/morfologik/tools/SharedOptions.java b/morfologik-tools/src/main/java/morfologik/tools/SharedOptions.java
index e047d7f..11b42aa 100644
--- a/src/morfologik/tools/SharedOptions.java
+++ b/morfologik-tools/src/main/java/morfologik/tools/SharedOptions.java
@@ -3,6 +3,8 @@ package morfologik.tools;
import java.io.File;
import java.util.Arrays;
+import morfologik.stemming.EncoderType;
+
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
@@ -114,23 +116,14 @@ final class SharedOptions {
.withLongOpt("sorted")
.create();
- public final static Option standardEncoding = OptionBuilder
- .withDescription("Encode suffix forms in a standard way")
- .withLongOpt("suffix")
- .isRequired(false)
- .create("suf");
-
- public final static Option prefixEncoding = OptionBuilder
- .withDescription("Encode suffix forms in a prefix way")
- .withLongOpt("prefix")
- .isRequired(false)
- .create("pre");
-
- public final static Option infixEncoding = OptionBuilder
- .withDescription("Encode suffix forms in an infix way")
- .withLongOpt("infix")
+ public final static Option encoder = OptionBuilder
+ .withDescription("Encoder used for compressing inflected forms. Any of: "
+ + Arrays.toString(EncoderType.values()))
+ .withLongOpt("encoder")
+ .hasArg(true)
+ .withArgName("name")
.isRequired(false)
- .create("inf");
+ .create("e");
public final static Option noWarnIfTwoFields = OptionBuilder
.withDescription("Suppress warning for lines with only two fields (for stemming dictionaries)")
@@ -144,6 +137,12 @@ final class SharedOptions {
.withLongOpt("stats")
.create();
+ public final static Option help = OptionBuilder
+ .withDescription("Help on available options.")
+ .withLongOpt("help")
+ .isRequired(false)
+ .create();
+
/**
* No instances. Use static fields.
*/
diff --git a/src/morfologik/tools/Tool.java b/morfologik-tools/src/main/java/morfologik/tools/Tool.java
index ebc1daf..27dac3f 100644
--- a/src/morfologik/tools/Tool.java
+++ b/morfologik-tools/src/main/java/morfologik/tools/Tool.java
@@ -13,17 +13,34 @@ abstract class Tool {
* Initializes application context.
*/
protected final void go(String[] args) {
+ options.addOption(SharedOptions.help);
initializeOptions(options);
-
- if (args.length == 0) {
- printUsage();
- return;
+
+ // Commons-cli is pretty dumb in terms of option parsing because it
+ // validates immediately and there is no way to determine
+ // if an option exists without bailing out with an exception. This
+ // is a hardcoded workaround for --help
+ for (String arg : args) {
+ if ("--help".equals(arg)) {
+ printUsage();
+ return;
+ }
}
final Parser parser = new GnuParser();
final CommandLine line;
try {
line = parser.parse(options, args);
+ if (line.hasOption(SharedOptions.help.getLongOpt())) {
+ printUsage();
+ return;
+ }
+ if (line.getArgList().size() > 0) {
+ printError("Unreconized left over command line arguments: "
+ + line.getArgList());
+ return;
+ }
+
try {
go(line);
} catch (Throwable e) {
@@ -55,6 +72,7 @@ abstract class Tool {
protected void printError(String msg) {
System.err.println();
System.err.println(msg);
+ System.err.println("Invoke with '--help' for help.");
}
/**
diff --git a/src/morfologik/tools/WriterMessageLogger.java b/morfologik-tools/src/main/java/morfologik/tools/WriterMessageLogger.java
index fceb698..5caee57 100644
--- a/src/morfologik/tools/WriterMessageLogger.java
+++ b/morfologik-tools/src/main/java/morfologik/tools/WriterMessageLogger.java
@@ -3,6 +3,8 @@ package morfologik.tools;
import java.io.PrintWriter;
import java.util.*;
+import morfologik.fsa.IMessageLogger;
+
/**
* A logger dumping info to <code>System.err</code>.
*/
diff --git a/morfologik-tools/src/proguard/rules.pro b/morfologik-tools/src/proguard/rules.pro
new file mode 100644
index 0000000..c8db532
--- /dev/null
+++ b/morfologik-tools/src/proguard/rules.pro
@@ -0,0 +1,16 @@
+
+-dontnote
+-dontoptimize
+-dontwarn
+
+-renamepackage org.apache=>morfologik.dependencies
+-renamepackage com.carrotsearch=>morfologik.dependencies
+-repackageclasses morfologik.dependencies
+
+-keep class morfologik.** {
+ <methods>; <fields>;
+}
+
+-dontnote
+
+-libraryjars <java.home>/lib/rt.jar(java/**)
diff --git a/morfologik-tools/src/test/java/morfologik/tools/FSABuildToolTest.java b/morfologik-tools/src/test/java/morfologik/tools/FSABuildToolTest.java
new file mode 100644
index 0000000..4d45f9c
--- /dev/null
+++ b/morfologik-tools/src/test/java/morfologik/tools/FSABuildToolTest.java
@@ -0,0 +1,53 @@
+package morfologik.tools;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.PrintStream;
+import java.nio.charset.Charset;
+
+import org.hamcrest.core.StringContains;
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.google.common.base.Charsets;
+import com.google.common.base.Joiner;
+import com.google.common.io.ByteStreams;
+import com.google.common.io.Files;
+
+public class FSABuildToolTest
+{
+ /* */
+ @Test
+ public void testStemmingFile() throws Exception {
+ // Create a simple plain text file.
+ File input = File.createTempFile("input", "in");
+ File output = File.createTempFile("output", "fsa.txt");
+ input.deleteOnExit();
+ output.deleteOnExit();
+
+ // Populate the file with data.
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ // Emit UTF-8 BOM prefixed list of three strings.
+ baos.write(new byte [] {(byte) 0xEF, (byte) 0xBB, (byte) 0xBF});
+ baos.write(Joiner.on('\n').join("abc", "def", "xyz").getBytes(Charsets.UTF_8));
+ Files.copy(ByteStreams.newInputStreamSupplier(baos.toByteArray()), input);
+
+ baos.reset();
+ PrintStream prev = System.err;
+ PrintStream ps = new PrintStream(baos);
+ System.setErr(ps);
+ try {
+ FSABuildTool.main(new String [] {
+ "--input", input.getAbsolutePath(),
+ "--output", output.getAbsolutePath()
+ });
+ } finally {
+ System.setErr(prev);
+ }
+
+ String logs = new String(baos.toByteArray(), Charset.defaultCharset());
+ Assert.assertThat(logs, StringContains.containsString("UTF-8 BOM"));
+
+ System.out.println(logs);
+ }
+}
diff --git a/src-test/morfologik/tools/LauncherTest.java b/morfologik-tools/src/test/java/morfologik/tools/LauncherTest.java
index da94df7..8e1d0e9 100644
--- a/src-test/morfologik/tools/LauncherTest.java
+++ b/morfologik-tools/src/test/java/morfologik/tools/LauncherTest.java
@@ -16,7 +16,7 @@ public class LauncherTest {
public void testTools() throws Exception {
for (Map.Entry<String, ToolInfo> e : Launcher.initTools().entrySet()) {
try {
- e.getValue().invoke(new String[] {});
+ e.getValue().invoke(new String[] {"--help"});
} catch (Throwable t) {
Assert.fail("Unable to launch " + e.getKey() + ": "
+ t.getMessage());
diff --git a/morfologik-tools/src/test/java/morfologik/tools/MorphEncodingToolTest.java b/morfologik-tools/src/test/java/morfologik/tools/MorphEncodingToolTest.java
new file mode 100644
index 0000000..496880f
--- /dev/null
+++ b/morfologik-tools/src/test/java/morfologik/tools/MorphEncodingToolTest.java
@@ -0,0 +1,243 @@
+package morfologik.tools;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PrintStream;
+import java.io.PrintWriter;
+import java.util.List;
+
+import morfologik.fsa.FSA;
+import morfologik.stemming.Dictionary;
+import morfologik.stemming.DictionaryLookup;
+import morfologik.stemming.DictionaryMetadataBuilder;
+import morfologik.stemming.EncoderType;
+import morfologik.stemming.WordData;
+
+import org.fest.assertions.api.Assertions;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.carrotsearch.randomizedtesting.RandomizedTest;
+import com.google.common.base.Charsets;
+import com.google.common.io.Closer;
+
+/*
+ *
+ */
+public class MorphEncodingToolTest extends RandomizedTest {
+ private Closer closer = Closer.create();
+
+ @After
+ public void cleanup() throws IOException {
+ closer.close();
+ }
+
+ @Test
+ public void testTool() throws Exception {
+ // Create a simple plain text file.
+ File input = super.newTempFile();
+ File output = super.newTempFile();
+
+ // Populate the file with data.
+ PrintWriter w =
+ new PrintWriter(
+ new OutputStreamWriter(
+ closer.register(new FileOutputStream(input)), "UTF-8"));
+ w.println("passagère\tpassager\ttag");
+ w.println("nieduży\tduży\ttest");
+ w.print("abcd\tabc\txyz");
+ w.close();
+
+ // suffix
+ MorphEncodingTool.main(new String[] {
+ "--input", input.getAbsolutePath(),
+ "--output", output.getAbsolutePath(),
+ "--encoder", "suffix" });
+
+ BufferedReader testOutput =
+ new BufferedReader(
+ new InputStreamReader(
+ closer.register(new FileInputStream(output.getAbsolutePath())), "UTF-8"));
+ Assert.assertEquals("passagère+Eer+tag", testOutput.readLine());
+ Assert.assertEquals("nieduży+Iduży+test", testOutput.readLine());
+ Assert.assertEquals("abcd+B+xyz", testOutput.readLine());
+
+ // prefix
+ MorphEncodingTool.main(new String[] {
+ "--input", input.getAbsolutePath(),
+ "--output", output.getAbsolutePath(),
+ "--encoder", "prefix" });
+
+ testOutput =
+ new BufferedReader(
+ new InputStreamReader(
+ closer.register(new FileInputStream(output.getAbsolutePath())), "UTF-8"));
+ Assert.assertEquals("passagère+AEer+tag", testOutput.readLine());
+ Assert.assertEquals("nieduży+DA+test", testOutput.readLine());
+ Assert.assertEquals("abcd+AB+xyz", testOutput.readLine());
+
+ // infix
+ MorphEncodingTool.main(new String[] {
+ "--input", input.getAbsolutePath(),
+ "--output", output.getAbsolutePath(),
+ "--encoder", "infix" });
+
+ testOutput =
+ new BufferedReader(
+ new InputStreamReader(
+ closer.register(new FileInputStream(output.getAbsolutePath())), "UTF-8"));
+ Assert.assertEquals("passagère+GDAr+tag", testOutput.readLine());
+ Assert.assertEquals("nieduży+ADA+test", testOutput.readLine());
+ Assert.assertEquals("abcd+AAB+xyz", testOutput.readLine());
+
+ // custom annotation - test tabs
+ MorphEncodingTool.main(new String[] {
+ "--annotation", "\t",
+ "--input", input.getAbsolutePath(),
+ "--output", output.getAbsolutePath(),
+ "--encoder", "infix" });
+
+ testOutput =
+ new BufferedReader(
+ new InputStreamReader(
+ closer.register(new FileInputStream(output.getAbsolutePath())), "UTF-8"));
+ Assert.assertEquals("passagère\tGDAr\ttag", testOutput.readLine());
+ Assert.assertEquals("nieduży\tADA\ttest", testOutput.readLine());
+ Assert.assertEquals("abcd\tAAB\txyz", testOutput.readLine());
+ }
+
+ /* */
+ @Test
+ public void testStemmingFile() throws Exception {
+ // Create a simple plain text file.
+ File input = super.newTempFile();
+ File output = super.newTempFile();
+
+ PrintWriter w =
+ new PrintWriter(
+ new OutputStreamWriter(
+ closer.register(new FileOutputStream(input)), "UTF-8"));
+ w.println("passagère\tpassager");
+ w.println("nieduży\tduży");
+ w.println();
+ w.println("abcd\tabc");
+ w.close();
+
+ MorphEncodingTool.main(new String[] {
+ "--input", input.getAbsolutePath(),
+ "--output", output.getAbsolutePath(),
+ "-e", "suffix" });
+
+ BufferedReader testOutput =
+ new BufferedReader(
+ new InputStreamReader(
+ closer.register(new FileInputStream(output.getAbsolutePath())), "UTF-8"));
+ Assert.assertEquals("passagère+Eer+", testOutput.readLine());
+ Assert.assertEquals("nieduży+Iduży+", testOutput.readLine());
+ Assert.assertEquals("abcd+B+", testOutput.readLine());
+
+ testOutput.close();
+ }
+
+ /* */
+ @Test
+ public void testZeroByteSeparator() throws Exception {
+ // Create a simple plain text file.
+ File input = newTempFile();
+ File output = newTempFile();
+
+ // Populate the file with data.
+ PrintWriter w =
+ new PrintWriter(
+ new OutputStreamWriter(
+ closer.register(new FileOutputStream(input)), "UTF-8"));
+ w.println("passagère\tpassager\tTAG1");
+ w.println("nieduży\tduży\tTAG2");
+ w.println("abcd\tabc\tTAG3");
+ w.close();
+
+ MorphEncodingTool.main(new String[] {
+ "--input", input.getAbsolutePath(),
+ "--output", output.getAbsolutePath(),
+ "-e", "suffix",
+ "--annotation", "\u0000"});
+
+ BufferedReader testOutput =
+ new BufferedReader(
+ new InputStreamReader(
+ closer.register(new FileInputStream(output.getAbsolutePath())), "UTF-8"));
+
+ Assert.assertEquals("passagère\u0000Eer\u0000TAG1", testOutput.readLine());
+ Assert.assertEquals("nieduży\u0000Iduży\u0000TAG2", testOutput.readLine());
+ Assert.assertEquals("abcd\u0000B\u0000TAG3", testOutput.readLine());
+
+ File fsaFile = newTempFile();
+ FSABuildTool.main(
+ "--input", output.getAbsolutePath(),
+ "--output", fsaFile.getAbsolutePath());
+
+ FSA fsa = FSA.read(fsaFile);
+ DictionaryLookup dl = new DictionaryLookup(
+ new Dictionary(
+ fsa,
+ new DictionaryMetadataBuilder()
+ .separator((char) 0)
+ .encoding(Charsets.UTF_8)
+ .encoder(EncoderType.SUFFIX)
+ .build()));
+
+ checkEntry(dl, "passagère", "passager", "TAG1");
+ checkEntry(dl, "nieduży", "duży", "TAG2");
+ checkEntry(dl, "abcd", "abc", "TAG3");
+ }
+
+ /* */
+ @Test
+ public void testAnnotationCharacterInBaseOrDerivedWord() throws Exception {
+ // Create a simple plain text file.
+ File input = newTempFile();
+ File output = newTempFile();
+
+ // Populate the file with data.
+ PrintWriter w =
+ new PrintWriter(
+ new OutputStreamWriter(
+ closer.register(new FileOutputStream(input)), "UTF-8"));
+ w.println("foo+\tbar-\tTAG1");
+ w.close();
+
+ PrintStream err = System.err;
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ try {
+ System.setErr(new PrintStream(baos, true, "UTF-8"));
+ MorphEncodingTool.main(new String[] {
+ "--input", input.getAbsolutePath(),
+ "--output", output.getAbsolutePath(),
+ "-e", "suffix",
+ "--annotation", "+"});
+ } finally {
+ System.err.flush();
+ System.setErr(err);
+ }
+
+ Assertions.assertThat(new String(baos.toByteArray(), Charsets.UTF_8))
+ .contains("contain the annotation byte");
+ }
+
+ private void checkEntry(DictionaryLookup dl, String word, String base, String tag) {
+ List<WordData> lookup = dl.lookup(word);
+ Assertions.assertThat(lookup.size()).isEqualTo(1);
+ WordData wordData = lookup.get(0);
+ Assertions.assertThat(wordData.getWord().toString()).isEqualTo(word);
+ Assertions.assertThat(wordData.getStem().toString()).isEqualTo(base);
+ Assertions.assertThat(wordData.getTag().toString()).isEqualTo(tag);
+ }
+}
diff --git a/morfologik-tools/src/test/java/morfologik/tools/SequenceEncodersRandomizedTest.java b/morfologik-tools/src/test/java/morfologik/tools/SequenceEncodersRandomizedTest.java
new file mode 100644
index 0000000..d0379d7
--- /dev/null
+++ b/morfologik-tools/src/test/java/morfologik/tools/SequenceEncodersRandomizedTest.java
@@ -0,0 +1,106 @@
+package morfologik.tools;
+
+import java.nio.ByteBuffer;
+import java.util.List;
+
+import morfologik.stemming.DictionaryLookup;
+import morfologik.stemming.DictionaryMetadataBuilder;
+import morfologik.stemming.EncoderType;
+
+import org.junit.Test;
+
+import com.carrotsearch.hppc.ByteArrayList;
+import com.carrotsearch.randomizedtesting.RandomizedTest;
+import com.carrotsearch.randomizedtesting.annotations.Name;
+import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
+import com.google.common.base.Charsets;
+import com.google.common.collect.Lists;
+
+public class SequenceEncodersRandomizedTest extends RandomizedTest {
+ private final SequenceEncoders.IEncoder coder;
+
+ public SequenceEncodersRandomizedTest(@Name("coder") SequenceEncoders.IEncoder coder)
+ {
+ this.coder = coder;
+ }
+
+ @ParametersFactory
+ public static List<Object[]> testFactory() {
+ List<Object[]> encoders = Lists.newArrayList();
+ for (EncoderType t : EncoderType.values()) {
+ encoders.add(new Object [] {SequenceEncoders.forType(t)});
+ }
+ return encoders;
+ }
+
+ @Test
+ public void testEncodeSuffixOnRandomSequences() {
+ for (int i = 0; i < 10000; i++) {
+ assertRoundtripEncode(
+ randomAsciiOfLengthBetween(0, 500),
+ randomAsciiOfLengthBetween(0, 500));
+ }
+ }
+
+ @Test
+ public void testEncodeSamples() {
+ assertRoundtripEncode("", "");
+ assertRoundtripEncode("abc", "ab");
+ assertRoundtripEncode("abc", "abx");
+ assertRoundtripEncode("ab", "abc");
+ assertRoundtripEncode("xabc", "abc");
+ assertRoundtripEncode("axbc", "abc");
+ assertRoundtripEncode("axybc", "abc");
+ assertRoundtripEncode("axybc", "abc");
+ assertRoundtripEncode("azbc", "abcxy");
+
+ assertRoundtripEncode("Niemcami", "Niemiec");
+ assertRoundtripEncode("Niemiec", "Niemcami");
+ }
+
+ private void assertRoundtripEncode(String srcString, String dstString)
+ {
+ ByteArrayList src = ByteArrayList.from(srcString.getBytes(UTF8));
+ ByteArrayList dst = ByteArrayList.from(dstString.getBytes(UTF8));
+ ByteArrayList encoded = ByteArrayList.newInstance();
+ ByteArrayList decoded = ByteArrayList.newInstance();
+
+ coder.encode(src, dst, encoded);
+ coder.decode(src, encoded, decoded);
+
+ if (!dst.equals(decoded)) {
+ System.out.println("src: " + new String(src.toArray(), Charsets.UTF_8));
+ System.out.println("dst: " + new String(dst.toArray(), Charsets.UTF_8));
+ System.out.println("enc: " + new String(encoded.toArray(), Charsets.UTF_8));
+ System.out.println("dec: " + new String(decoded.toArray(), Charsets.UTF_8));
+ }
+
+ assertEquals(dst, decoded);
+
+ // DictionaryLookup.decodeBaseForm decoding testing
+ DictionaryMetadataBuilder builder = new DictionaryMetadataBuilder();
+ builder.encoding(Charsets.UTF_8);
+ builder.encoder(coder.type());
+
+ ByteBuffer bb = DictionaryLookup.decodeBaseForm(
+ ByteBuffer.allocate(0),
+ encoded.toArray(),
+ encoded.size(),
+ ByteBuffer.wrap(src.toArray()), builder.build());
+
+ ByteArrayList decoded2 = ByteArrayList.newInstance();
+ bb.flip();
+ while (bb.hasRemaining()) decoded2.add(bb.get());
+
+ if (!dst.equals(decoded2)) {
+ System.out.println("DictionaryLookup.decodeBaseForm incorrect, coder: " + coder);
+ System.out.println("src : " + new String(src.toArray(), Charsets.UTF_8));
+ System.out.println("dst : " + new String(dst.toArray(), Charsets.UTF_8));
+ System.out.println("enc : " + new String(encoded.toArray(), Charsets.UTF_8));
+ System.out.println("dec : " + new String(decoded.toArray(), Charsets.UTF_8));
+ System.out.println("dec2: " + new String(decoded2.toArray(), Charsets.UTF_8));
+ }
+
+ assertEquals(dst, decoded2);
+ }
+}
diff --git a/morfologik-tools/src/test/java/morfologik/tools/SequenceEncodersStaticTest.java b/morfologik-tools/src/test/java/morfologik/tools/SequenceEncodersStaticTest.java
new file mode 100644
index 0000000..3f1625d
--- /dev/null
+++ b/morfologik-tools/src/test/java/morfologik/tools/SequenceEncodersStaticTest.java
@@ -0,0 +1,96 @@
+package morfologik.tools;
+
+import static org.junit.Assert.*;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.Charset;
+
+import morfologik.stemming.EncoderType;
+
+import org.junit.Test;
+
+import com.google.common.base.Charsets;
+
+/*
+ *
+ */
+public class SequenceEncodersStaticTest {
+ private SequenceAssembler suffix = new SequenceAssembler(new SequenceEncoders.TrimSuffixEncoder());
+ private SequenceAssembler prefix = new SequenceAssembler(new SequenceEncoders.TrimPrefixAndSuffixEncoder());
+ private SequenceAssembler infix = new SequenceAssembler(new SequenceEncoders.TrimInfixAndSuffixEncoder());
+
+ @Test
+ public void testStandardEncode() throws Exception {
+ assertEquals("abc+Ad+tag", encode(suffix, "abc", "abcd", "tag"));
+ assertEquals("abc+Dxyz+tag", encode(suffix, "abc", "xyz", "tag"));
+ assertEquals("abc+Bć+tag", encode(suffix, "abc", "abć", "tag"));
+ }
+
+ @Test
+ public void testSeparatorChange() throws Exception {
+ assertEquals("abc+Ad+tag", encode(suffix, "abc", "abcd", "tag"));
+
+ SequenceAssembler assembler = new SequenceAssembler(new SequenceEncoders.TrimSuffixEncoder(), (byte) '_');
+ assertEquals("abc_Ad_tag", encode(assembler, "abc", "abcd", "tag"));
+
+ assembler = new SequenceAssembler(new SequenceEncoders.TrimSuffixEncoder(), (byte) '\t');
+ assertEquals("abc\tAd\ttag", encode(assembler, "abc", "abcd", "tag"));
+ }
+
+ @Test
+ public void testPrefixEncode() throws UnsupportedEncodingException {
+ assertEquals("abc+AAd+tag", encode(prefix, "abc", "abcd", "tag"));
+ assertEquals("abcd+AB+tag", encode(prefix, "abcd", "abc", "tag"));
+ assertEquals("abc+ADxyz+tag", encode(prefix, "abc", "xyz", "tag"));
+ assertEquals("abc+ABć+tag", encode(prefix, "abc", "abć", "tag"));
+ assertEquals("postmodernizm+AAu+xyz", encode(prefix, "postmodernizm", "postmodernizmu", "xyz"));
+ assertEquals("postmodernizmu+AB+xyz", encode(prefix, "postmodernizmu", "postmodernizm", "xyz"));
+ assertEquals("nieduży+DA+adj", encode(prefix, "nieduży", "duży", "adj"));
+ assertEquals("postmodernizm+EA+xyz", encode(prefix, "postmodernizm", "modernizm", "xyz"));
+ }
+
+ @Test
+ public void testInfixEncode() throws UnsupportedEncodingException {
+ assertEquals("ayz+AACbc+tag", encode(infix, "ayz", "abc", "tag"));
+ assertEquals("xyz+AADabc+tag", encode(infix, "xyz", "abc", "tag"));
+
+ assertEquals("abc+AAAd+tag", encode(infix, "abc", "abcd", "tag"));
+ assertEquals("abcd+AAB+tag", encode(infix, "abcd", "abc", "tag"));
+ assertEquals("abc+AADxyz+tag", encode(infix, "abc", "xyz", "tag"));
+ assertEquals("abc+AABć+tag", encode(infix, "abc", "abć", "tag"));
+ assertEquals("postmodernizm+AAAu+xyz", encode(infix, "postmodernizm", "postmodernizmu", "xyz"));
+ assertEquals("postmodernizmu+AAB+xyz", encode(infix, "postmodernizmu", "postmodernizm", "xyz"));
+ assertEquals("nieduży+ADA+adj", encode(infix, "nieduży", "duży", "adj"));
+
+ // real infix cases
+ assertEquals("kcal+ABA+xyz", encode(infix, "kcal", "cal", "xyz"));
+ assertEquals("aillent+BBCr+xyz", encode(infix, "aillent", "aller", "xyz"));
+ assertEquals("laquelle+AGAquel+D f s", encode(infix, "laquelle", "lequel", "D f s"));
+ assertEquals("ccal+ABA+test", encode(infix, "ccal", "cal", "test"));
+ assertEquals("ccal+ABA+test", encode(infix, "ccal", "cal", "test"));
+ }
+
+ @Test
+ public void testUTF8Boundary() throws Exception {
+ assertEquals("passagère+Eer+tag", encode(suffix, "passagère", "passager", "tag"));
+ assertEquals("passagère+GDAr+tag", encode(infix, "passagère", "passager", "tag"));
+ assertEquals("passagère+AEer+tag", encode(prefix, "passagère", "passager", "tag"));
+ }
+
+ @Test
+ public void testAllEncodersHaveImplementations() {
+ for (EncoderType t : EncoderType.values()) {
+ assertNotNull(null != SequenceEncoders.forType(t));
+ }
+ }
+
+ private String encode(SequenceAssembler assembler, String wordForm,
+ String wordLemma, String wordTag)
+ {
+ Charset UTF8 = Charsets.UTF_8;
+ return new String(assembler.encode(
+ wordForm.getBytes(UTF8),
+ wordLemma.getBytes(UTF8),
+ wordTag.getBytes(UTF8)), UTF8);
+ }
+}
diff --git a/src-test/morfologik/tools/Text2FSA5Test.java b/morfologik-tools/src/test/java/morfologik/tools/Text2FSA5Test.java
index 573c5da..573c5da 100644
--- a/src-test/morfologik/tools/Text2FSA5Test.java
+++ b/morfologik-tools/src/test/java/morfologik/tools/Text2FSA5Test.java
diff --git a/LICENSE b/morfologik.LICENSE
index 9074aac..bc7ee7a 100644
--- a/LICENSE
+++ b/morfologik.LICENSE
@@ -1,6 +1,6 @@
Copyright (c) 2006 Dawid Weiss
-Copyright (c) 2007-2011 Dawid Weiss, Marcin Miłkowski
+Copyright (c) 2007-2014 Dawid Weiss, Marcin Miłkowski
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..a795da7
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <prerequisites>
+ <maven>3.0.2</maven>
+ </prerequisites>
+
+ <!-- We use SonaType for publishing artefacts. Parent POM makes things easier here. -->
+ <parent>
+ <groupId>org.sonatype.oss</groupId>
+ <artifactId>oss-parent</artifactId>
+ <version>7</version>
+ </parent>
+
+ <!-- Project info. -->
+ <groupId>org.carrot2</groupId>
+ <artifactId>morfologik-parent</artifactId>
+ <version>1.9.0</version>
+ <packaging>pom</packaging>
+
+ <name>Morfologik (parent POM)</name>
+ <description>Morfologik provides high quality lemmatisation for the Polish language,
+ along with tools for building and using byte-based finite state automata.</description>
+ <url>http://morfologik.blogspot.com/</url>
+
+ <!-- Extended project info. -->
+ <licenses>
+ <license>
+ <name>BSD</name>
+ <url>http://www.opensource.org/licenses/bsd-license.php</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+
+ <!-- <organization> <name></name> <url></url> </organization> -->
+ <!-- <issueManagement> <system></system> <url></url> </issueManagement> -->
+
+ <mailingLists>
+ <mailingList>
+ <name>Announcements, bug reports, developers mailing list</name>
+ <post>morfologik-devel@lists.sourceforge.net</post>
+ </mailingList>
+ </mailingLists>
+
+ <scm>
+ <url>https://morfologik.svn.sourceforge.net/svnroot/morfologik/morfologik-stemming/trunk</url>
+ <connection>scm:svn:https://morfologik.svn.sourceforge.net/svnroot/morfologik/morfologik-stemming/trunk</connection>
+ <developerConnection>scm:svn:https://morfologik.svn.sourceforge.net/svnroot/morfologik/morfologik-stemming/trunk</developerConnection>
+ </scm>
+
+ <developers>
+ <developer>
+ <id>dawid.weiss</id>
+ <name>Dawid Weiss</name>
+ <email>dawid.weiss@carrotsearch.com</email>
+ </developer>
+
+ <developer>
+ <id>marcin.milkowski</id>
+ <name>Marcin Miłkowski</name>
+ <!-- <email></email> -->
+ </developer>
+ </developers>
+
+ <!-- Global properties. -->
+ <properties>
+ <maven.compiler.source>1.6</maven.compiler.source>
+ <maven.compiler.target>1.6</maven.compiler.target>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+ <skip.deployment>false</skip.deployment>
+ <gpg.passphrase></gpg.passphrase>
+ </properties>
+
+ <!-- Add snapshots from SonaType -->
+ <repositories>
+ <repository>
+ <id>SonaType snapshots</id>
+ <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ </repositories>
+
+ <!-- Submodules -->
+ <modules>
+ <module>morfologik-fsa</module>
+ <module>morfologik-stemming</module>
+ <module>morfologik-polish</module>
+ <module>morfologik-tools</module>
+ <module>morfologik-distribution</module>
+ <module>morfologik-speller</module>
+ </modules>
+
+ <!-- Manage dependencies; we keep versions separate to possibly split out submodules
+ later on. -->
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>com.carrotsearch</groupId>
+ <artifactId>hppc</artifactId>
+ <version>0.5.3</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.carrotsearch</groupId>
+ <artifactId>junit-benchmarks</artifactId>
+ <version>0.7.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.11</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>15.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.easytesting</groupId>
+ <artifactId>fest-assert-core</artifactId>
+ <version>2.0M10</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.carrotsearch.randomizedtesting</groupId>
+ <artifactId>randomizedtesting-runner</artifactId>
+ <version>2.0.13</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <!-- Manage the build. -->
+ <build>
+ <defaultGoal>install</defaultGoal>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.7</version>
+ <configuration>
+ <skip>${skip.deployment}</skip>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>2.2.1</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.9</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.7</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.4</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.4</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>2.4</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.6</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.7</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>2.9</version>
+ <configuration>
+ <outputDirectory>${basedir}/.eclipse/classes</outputDirectory>
+ <buildcommands>
+ <java.lang.String>org.eclipse.jdt.core.javabuilder</java.lang.String>
+ </buildcommands>
+ <projectnatures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </projectnatures>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.5.1</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.12.4</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <version>1.4</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+
+ <!-- Profiles. -->
+ <profiles>
+ <profile>
+ <id>quick</id>
+ <properties>
+ <maven.test.skip>true</maven.test.skip>
+ </properties>
+ </profile>
+
+ <profile>
+ <id>sign</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <version>1.1</version>
+ <configuration>
+ <excludes>
+ <exclude>**/*.gz</exclude>
+ <exclude>**/*.zip</exclude>
+ </excludes>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>sign</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <profile>
+ <id>release</id>
+
+ <build>
+ <plugins>
+ <!-- Attach and modify JavaDocs. -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <encoding>${project.build.sourceEncoding}</encoding>
+ <windowtitle>${project.name} v${project.version} API Documentation</windowtitle>
+ <doctitle>${project.name} v${project.version} API Documentation</doctitle>
+ <charset>UTF-8</charset>
+ <detectJavaApiLink>false</detectJavaApiLink>
+ </configuration>
+ <executions>
+ <execution>
+ <id>attach-javadocs</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Attach sources -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <configuration>
+ <excludeResources>true</excludeResources>
+ </configuration>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
+
diff --git a/src-test/morfologik/stemming/DictionaryLookupTest.java b/src-test/morfologik/stemming/DictionaryLookupTest.java
deleted file mode 100644
index e5c5204..0000000
--- a/src-test/morfologik/stemming/DictionaryLookupTest.java
+++ /dev/null
@@ -1,250 +0,0 @@
-package morfologik.stemming;
-
-import static org.junit.Assert.*;
-
-import java.io.IOException;
-import java.net.URL;
-import java.nio.ByteBuffer;
-import java.util.*;
-
-import org.junit.Test;
-
-/*
- *
- */
-public class DictionaryLookupTest {
- /* */
- @Test
- public void testPrefixDictionaries() throws IOException {
- final URL url = this.getClass().getResource("test-prefix.dict");
- final IStemmer s = new DictionaryLookup(Dictionary.read(url));
-
- assertArrayEquals(new String[] { "Rzeczpospolita", "subst:irreg" },
- stem(s, "Rzeczypospolitej"));
- assertArrayEquals(new String[] { "Rzeczpospolita", "subst:irreg" },
- stem(s, "RzeczÄ…pospolitÄ…"));
-
- // This word is not in the dictionary.
- assertNoStemFor(s, "martygalski");
- }
-
- /* */
- @Test
- public void testInfixDictionaries() throws IOException {
- final URL url = this.getClass().getResource("test-infix.dict");
- final IStemmer s = new DictionaryLookup(Dictionary.read(url));
-
- assertArrayEquals(new String[] { "Rzeczpospolita", "subst:irreg" },
- stem(s, "Rzeczypospolitej"));
- assertArrayEquals(new String[] { "Rzeczycki", "adj:pl:nom:m" }, stem(s,
- "Rzeczyccy"));
- assertArrayEquals(new String[] { "Rzeczpospolita", "subst:irreg" },
- stem(s, "RzeczÄ…pospolitÄ…"));
-
- // This word is not in the dictionary.
- assertNoStemFor(s, "martygalski");
- }
-
- /* */
- @Test
- public void testWordDataIterator() throws IOException {
- final URL url = this.getClass().getResource("test-infix.dict");
- final DictionaryLookup s = new DictionaryLookup(Dictionary.read(url));
-
- final HashSet<String> entries = new HashSet<String>();
- for (WordData wd : s) {
- entries.add(wd.getWord() + " " + wd.getStem() + " " + wd.getTag());
- }
-
- // Make sure a sample of the entries is present.
- assertTrue(entries.contains("Rzekunia Rzekuń subst:sg:gen:m"));
- assertTrue(entries
- .contains("Rzeczkowskie Rzeczkowski adj:sg:nom.acc.voc:n+adj:pl:acc.nom.voc:f.n"));
- assertTrue(entries
- .contains("RzeczÄ…pospolitÄ… Rzeczpospolita subst:irreg"));
- assertTrue(entries
- .contains("Rzeczypospolita Rzeczpospolita subst:irreg"));
- assertTrue(entries
- .contains("Rzeczypospolitych Rzeczpospolita subst:irreg"));
- assertTrue(entries
- .contains("Rzeczyckiej Rzeczycki adj:sg:gen.dat.loc:f"));
- }
-
- /* */
- @Test
- public void testWordDataCloning() throws IOException {
- final URL url = this.getClass().getResource("test-infix.dict");
- final DictionaryLookup s = new DictionaryLookup(Dictionary.read(url));
-
- ArrayList<WordData> words = new ArrayList<WordData>();
- for (WordData wd : s) {
- WordData clone = wd.clone();
- words.add(clone);
- }
-
- // Reiterate and verify that we have the same entries.
- final DictionaryLookup s2 = new DictionaryLookup(Dictionary.read(url));
- int i = 0;
- for (WordData wd : s2) {
- WordData clone = words.get(i++);
- assertEqualSequences(clone.getStem(), wd.getStem());
- assertEqualSequences(clone.getTag(), wd.getTag());
- assertEqualSequences(clone.getWord(), wd.getWord());
- assertEqualSequences(clone.wordCharSequence, wd.wordCharSequence);
- }
-
- // Check collections contract.
- final HashSet<WordData> entries = new HashSet<WordData>();
- try {
- entries.add(words.get(0));
- fail();
- } catch (RuntimeException e) {
- // Expected.
- }
- }
-
- private void assertEqualSequences(CharSequence s1, CharSequence s2) {
- assertEquals(s1.toString(), s2.toString());
- }
-
- /* */
- @Test
- public void testWordDataFields() throws IOException {
- final IStemmer s = new PolishStemmer();
-
- final String word = "liga";
- final List<WordData> response = s.lookup(word);
- assertEquals(2, response.size());
-
- final HashSet<String> stems = new HashSet<String>();
- final HashSet<String> tags = new HashSet<String>();
- for (WordData wd : response) {
- stems.add(wd.getStem().toString());
- tags.add(wd.getTag().toString());
- assertSame(word, wd.getWord());
- }
- assertTrue(stems.contains("ligać"));
- assertTrue(stems.contains("liga"));
- assertTrue(tags.contains("subst:sg:nom:f"));
- assertTrue(tags.contains("verb:fin:sg:ter:imperf"));
-
- // Repeat to make sure we get the same values consistently.
- for (WordData wd : response) {
- stems.contains(wd.getStem().toString());
- tags.contains(wd.getTag().toString());
- }
-
- // Run the same consistency check for the returned buffers.
- final ByteBuffer temp = ByteBuffer.allocate(100);
- for (WordData wd : response) {
- // Buffer should be copied.
- final ByteBuffer copy = wd.getStemBytes(null);
- final String stem = new String(copy.array(), copy.arrayOffset()
- + copy.position(), copy.remaining(), "iso-8859-2");
- // The buffer should be present in stems set.
- assertTrue(stem, stems.contains(stem));
- // Buffer large enough to hold the contents.
- temp.clear();
- assertSame(temp, wd.getStemBytes(temp));
- // The copy and the clone should be identical.
- assertEquals(0, copy.compareTo(temp));
- }
-
- for (WordData wd : response) {
- // Buffer should be copied.
- final ByteBuffer copy = wd.getTagBytes(null);
- final String tag = new String(copy.array(), copy.arrayOffset()
- + copy.position(), copy.remaining(), "iso-8859-2");
- // The buffer should be present in tags set.
- assertTrue(tag, tags.contains(tag));
- // Buffer large enough to hold the contents.
- temp.clear();
- assertSame(temp, wd.getTagBytes(temp));
- // The copy and the clone should be identical.
- assertEquals(0, copy.compareTo(temp));
- }
-
- for (WordData wd : response) {
- // Buffer should be copied.
- final ByteBuffer copy = wd.getWordBytes(null);
- assertNotNull(copy);
- assertEquals(0, copy.compareTo(ByteBuffer.wrap(word
- .getBytes("iso-8859-2"))));
- }
- }
-
- /* */
- @Test
- public void testMultibyteEncodingUTF8() throws IOException {
- final URL url = this.getClass()
- .getResource("test-diacritics-utf8.dict");
- final IStemmer s = new DictionaryLookup(Dictionary.read(url));
-
- assertArrayEquals(new String[] { "merge", "001" }, stem(s, "mergeam"));
- assertArrayEquals(new String[] { "merge", "002" },
- stem(s, "merseserăm"));
- }
-
- /* */
- @Test
- public void testSynthesis() throws IOException {
- final URL url = this.getClass().getResource("test-synth.dict");
- final IStemmer s = new DictionaryLookup(Dictionary.read(url));
-
- assertArrayEquals(new String[] { "miała", null }, stem(s,
- "mieć|verb:praet:sg:ter:f:?perf"));
- assertArrayEquals(new String[] { "a", null }, stem(s, "a|conj"));
- assertArrayEquals(new String[] {}, stem(s, "dziecko|subst:sg:dat:n"));
-
- // This word is not in the dictionary.
- assertNoStemFor(s, "martygalski");
- }
-
- /* */
- @Test
- public void testInputWithSeparators() throws IOException {
- final URL url = this.getClass().getResource("test-separators.dict");
- final DictionaryLookup s = new DictionaryLookup(Dictionary.read(url));
-
- /*
- * Attemp to reconstruct input sequences using WordData iterator.
- */
- ArrayList<String> sequences = new ArrayList<String>();
- for (WordData wd : s) {
- sequences.add("" + wd.getWord() + " " + wd.getStem() + " "
- + wd.getTag());
- }
- Collections.sort(sequences);
-
- assertEquals("token1 null null", sequences.get(0));
- assertEquals("token2 null null", sequences.get(1));
- assertEquals("token3 null +", sequences.get(2));
- assertEquals("token4 token2 null", sequences.get(3));
- assertEquals("token5 token2 null", sequences.get(4));
- assertEquals("token6 token2 +", sequences.get(5));
- assertEquals("token7 token2 token3+", sequences.get(6));
- assertEquals("token8 token2 token3++", sequences.get(7));
- }
-
- /* */
- public static String[] stem(IStemmer s, String word) {
- ArrayList<String> result = new ArrayList<String>();
- for (WordData wd : s.lookup(word)) {
- result.add(asString(wd.getStem()));
- result.add(asString(wd.getTag()));
- }
- return result.toArray(new String[result.size()]);
- }
-
- /* */
- public static String asString(CharSequence s) {
- if (s == null)
- return null;
- return s.toString();
- }
-
- /* */
- public static void assertNoStemFor(IStemmer s, String word) {
- assertArrayEquals(new String[] {}, stem(s, word));
- }
-}
diff --git a/src-test/morfologik/stemming/PolishStemmerTest.java b/src-test/morfologik/stemming/PolishStemmerTest.java
deleted file mode 100644
index b3230ac..0000000
--- a/src-test/morfologik/stemming/PolishStemmerTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package morfologik.stemming;
-
-import static morfologik.stemming.DictionaryLookupTest.assertNoStemFor;
-import static morfologik.stemming.DictionaryLookupTest.stem;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.TreeSet;
-
-import org.junit.Ignore;
-import org.junit.Test;
-
-/*
- *
- */
-public class PolishStemmerTest {
- /* */
- @Test
- public void testLexemes() throws IOException {
- PolishStemmer s = new PolishStemmer();
-
- assertEquals("żywotopisarstwo", stem(s, "żywotopisarstwie")[0]);
- assertEquals("abradować", stem(s, "abradowałoby")[0]);
-
- assertArrayEquals(new String[] { "żywotopisarstwo", "subst:sg:loc:n" },
- stem(s, "żywotopisarstwie"));
- assertArrayEquals(new String[] { "bazia", "subst:pl:inst:f" }, stem(s,
- "baziami"));
-
- // This word is not in the dictionary.
- assertNoStemFor(s, "martygalski");
- }
-
- /* */
- @Test
- @Ignore
- public void listUniqueTags() throws IOException {
- HashSet<String> forms = new HashSet<String>();
- for (WordData wd : new PolishStemmer()) {
- final CharSequence chs = wd.getTag();
- if (chs == null) {
- System.err.println("Missing tag for: " + wd.getWord());
- continue;
- }
- forms.add(chs.toString());
- }
-
- for (String s : new TreeSet<String>(forms)) {
- System.out.println(s);
- }
- }
-}
diff --git a/src-test/morfologik/tools/MorphEncoderTest.java b/src-test/morfologik/tools/MorphEncoderTest.java
deleted file mode 100644
index a9b8f0d..0000000
--- a/src-test/morfologik/tools/MorphEncoderTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package morfologik.tools;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.UnsupportedEncodingException;
-
-import morfologik.tools.MorphEncoder;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import static morfologik.tools.MorphEncoder.*;
-
-/*
- *
- */
-public class MorphEncoderTest {
- private MorphEncoder encoder;
-
- @Before
- public void setUp() {
- encoder = new MorphEncoder();
- }
-
- @Test
- public void testCommonPrefix() {
- assertEquals(3, commonPrefix("abc".getBytes(), "abcd".getBytes()));
- assertEquals(0, commonPrefix("abc".getBytes(), "cba".getBytes()));
- }
-
- @Test
- public void testStandardEncode() throws UnsupportedEncodingException {
- assertEquals("abc+Ad+tag",
- asString(encoder.standardEncode(
- "abc".getBytes("UTF-8"),
- "abcd".getBytes("UTF-8"),
- "tag".getBytes("UTF-8")), "UTF-8"));
-
- assertEquals("abc+Dxyz+tag", encoder.standardEncodeUTF8("abc", "xyz", "tag"));
- assertEquals("abc+Bć+tag", encoder.standardEncodeUTF8("abc", "abć", "tag"));
- }
-
- @Test
- public void testSeparatorChange() throws UnsupportedEncodingException {
- assertEquals("abc+Ad+tag",
- asString(encoder.standardEncode(
- "abc".getBytes("UTF-8"),
- "abcd".getBytes("UTF-8"),
- "tag".getBytes("UTF-8")), "UTF-8"));
-
- encoder = new MorphEncoder((byte) '_');
- assertEquals("abc_Ad_tag",
- asString(encoder.standardEncode(
- "abc".getBytes("UTF-8"),
- "abcd".getBytes("UTF-8"),
- "tag".getBytes("UTF-8")), "UTF-8"));
-
- encoder = new MorphEncoder((byte) '\t');
- assertEquals("abc\tAd\ttag",
- asString(encoder.standardEncode(
- "abc".getBytes("UTF-8"),
- "abcd".getBytes("UTF-8"),
- "tag".getBytes("UTF-8")), "UTF-8"));
- }
-
- @Test
- public void testPrefixEncode() throws UnsupportedEncodingException {
- assertEquals("abc+AAd+tag", asString(
- encoder.prefixEncode(
- "abc".getBytes("UTF-8"),
- "abcd".getBytes("UTF-8"),
- "tag".getBytes("UTF-8")), "UTF-8"));
-
- assertEquals("abcd+AB+tag", asString(
- encoder.prefixEncode(
- "abcd".getBytes("UTF-8"),
- "abc".getBytes("UTF-8"),
- "tag".getBytes("UTF-8")), "US-ASCII"));
-
- assertEquals("abc+ADxyz+tag",
- encoder.prefixEncodeUTF8("abc", "xyz", "tag"));
- assertEquals("abc+ABć+tag",
- encoder.prefixEncodeUTF8("abc", "abć", "tag"));
- assertEquals("postmodernizm+AAu+xyz",
- encoder.prefixEncodeUTF8("postmodernizm", "postmodernizmu", "xyz"));
- assertEquals("postmodernizmu+AB+xyz",
- encoder.prefixEncodeUTF8("postmodernizmu", "postmodernizm", "xyz"));
- assertEquals("nieduży+DA+adj",
- encoder.prefixEncodeUTF8("nieduży", "duży", "adj"));
- assertEquals("postmodernizm+ANmodernizm+xyz",
- encoder.prefixEncodeUTF8("postmodernizm", "modernizm", "xyz"));
- }
-
- @Test
- public void testInfixEncode() throws UnsupportedEncodingException {
- assertEquals("abc+AAAd+tag", encoder.infixEncodeUTF8("abc", "abcd", "tag"));
- assertEquals("abcd+AAB+tag", encoder.infixEncodeUTF8("abcd", "abc", "tag"));
- assertEquals("abc+AADxyz+tag", encoder.infixEncodeUTF8("abc", "xyz", "tag"));
- assertEquals("abc+AABć+tag", encoder.infixEncodeUTF8("abc", "abć", "tag"));
- assertEquals("postmodernizm+AAAu+xyz",
- encoder.infixEncodeUTF8("postmodernizm", "postmodernizmu", "xyz"));
- assertEquals("postmodernizmu+AAB+xyz",
- encoder.infixEncodeUTF8("postmodernizmu", "postmodernizm", "xyz"));
- assertEquals("nieduży+ADA+adj",
- encoder.infixEncodeUTF8("nieduży", "duży", "adj"));
-
- // real infix cases
- assertEquals("kcal+ABA+xyz", encoder.infixEncodeUTF8("kcal", "cal", "xyz"));
- assertEquals("aillent+BBCr+xyz", encoder.infixEncodeUTF8("aillent", "aller", "xyz"));
- assertEquals("laquelle+AAHequel+D f s", encoder.infixEncodeUTF8("laquelle", "lequel", "D f s"));
- assertEquals("ccal+ABA+test", encoder.infixEncodeUTF8("ccal", "cal", "test"));
- }
-
- @Test
- public void testUTF8Boundary() throws UnsupportedEncodingException {
- assertEquals("passagère+Eer+tag", encoder.standardEncodeUTF8("passagère", "passager", "tag"));
- assertEquals("passagère+AAEer+tag", encoder.infixEncodeUTF8("passagère", "passager", "tag"));
- assertEquals("passagère+AEer+tag", encoder.prefixEncodeUTF8("passagère", "passager", "tag"));
- }
-
- @Test
- public void testAsString() throws UnsupportedEncodingException {
- assertEquals("passagère", asString("passagère".getBytes("UTF-8"), "UTF-8"));
- }
-}
diff --git a/src-test/morfologik/tools/MorphEncodingToolTest.java b/src-test/morfologik/tools/MorphEncodingToolTest.java
deleted file mode 100644
index c3d2559..0000000
--- a/src-test/morfologik/tools/MorphEncodingToolTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package morfologik.tools;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-/*
- *
- */
-public class MorphEncodingToolTest {
-
- @Test
- public void testTool() throws Exception {
- // Create a simple plain text file.
- File input = File.createTempFile("input", "in");
- File output = File.createTempFile("output", "fsa.txt");
- input.deleteOnExit();
- output.deleteOnExit();
-
- // Populate the file with data.
- PrintWriter w = new PrintWriter(new OutputStreamWriter(
- new FileOutputStream(input), "UTF-8"));
- w.println("passagère\tpassager\ttag");
- w.println("nieduży\tduży\ttest");
- w.println("abcd\tabc\txyz");
- w.close();
-
- // suffix
- MorphEncodingTool.main(new String[] {
- "--input", input.getAbsolutePath(),
- "--output", output.getAbsolutePath(),
- "-suf" });
-
- BufferedReader testOutput = new BufferedReader(new InputStreamReader(
- new FileInputStream(output.getAbsolutePath()), "UTF-8"));
- Assert.assertEquals("passagère+Eer+tag", testOutput.readLine());
- Assert.assertEquals("nieduży+Iduży+test", testOutput.readLine());
- Assert.assertEquals("abcd+B+xyz", testOutput.readLine());
-
- testOutput.close();
-
- // prefix
- MorphEncodingTool.main(new String[] {
- "--input", input.getAbsolutePath(),
- "--output", output.getAbsolutePath(),
- "-pre" });
-
- testOutput = new BufferedReader(new InputStreamReader(
- new FileInputStream(output.getAbsolutePath()), "UTF-8"));
- Assert.assertEquals("passagère+AEer+tag", testOutput.readLine());
- Assert.assertEquals("nieduży+DA+test", testOutput.readLine());
- Assert.assertEquals("abcd+AB+xyz", testOutput.readLine());
-
- testOutput.close();
-
- // infix
- MorphEncodingTool.main(new String[] {
- "--input", input.getAbsolutePath(),
- "--output", output.getAbsolutePath(),
- "-inf" });
-
- testOutput = new BufferedReader(new InputStreamReader(
- new FileInputStream(output.getAbsolutePath()), "UTF-8"));
- Assert.assertEquals("passagère+AAEer+tag", testOutput.readLine());
- Assert.assertEquals("nieduży+ADA+test", testOutput.readLine());
- Assert.assertEquals("abcd+AAB+xyz", testOutput.readLine());
-
- testOutput.close();
-
- }
-
- /* */
- @Test
- public void testStemmingFile() throws Exception {
- // Create a simple plain text file.
- File input = File.createTempFile("input", "in");
- File output = File.createTempFile("output", "fsa.txt");
- input.deleteOnExit();
- output.deleteOnExit();
-
- // Populate the file with data.
-
- // stemming only
- PrintWriter w = new PrintWriter(new OutputStreamWriter(
- new FileOutputStream(input), "UTF-8"));
- w.println("passagère\tpassager");
- w.println("nieduży\tduży");
- w.println("abcd\tabc");
- w.close();
-
- MorphEncodingTool.main(new String[] { "--input",
- input.getAbsolutePath(), "--output", output.getAbsolutePath(),
- "-suf" });
-
- BufferedReader testOutput = new BufferedReader(new InputStreamReader(
- new FileInputStream(output.getAbsolutePath()), "UTF-8"));
- Assert.assertEquals("passagère+Eer+", testOutput.readLine());
- Assert.assertEquals("nieduży+Iduży+", testOutput.readLine());
- Assert.assertEquals("abcd+B+", testOutput.readLine());
-
- testOutput.close();
- }
-}
diff --git a/src/morfologik/dictionaries/pl.LICENSE b/src/morfologik/dictionaries/pl.LICENSE
deleted file mode 100644
index 8529618..0000000
--- a/src/morfologik/dictionaries/pl.LICENSE
+++ /dev/null
@@ -1,8 +0,0 @@
-LICENCE
-
-The dictionary comes from Morfologik project. Morfologik uses data from
-Polish ispell/myspell dictionary hosted at http://www.sjp.pl/slownik/en/ and
-is licenced on the terms of (inter alia) LGPL and Creative Commons
-ShareAlike. The part-of-speech tags were added in Morfologik project and
-are not found in the data from sjp.pl. The tagset is similar to IPI PAN
-tagset.
diff --git a/src/morfologik/dictionaries/pl.dict b/src/morfologik/dictionaries/pl.dict
deleted file mode 100644
index 1ebd28a..0000000
--- a/src/morfologik/dictionaries/pl.dict
+++ /dev/null
Binary files differ
diff --git a/src/morfologik/dictionaries/pl.info b/src/morfologik/dictionaries/pl.info
deleted file mode 100644
index 0c933c9..0000000
--- a/src/morfologik/dictionaries/pl.info
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Dictionary metadata.
-#
-
-fsa.dict.author=morfologik.blogspot.com
-fsa.dict.created=19.11.2010
-fsa.dict.license=LGPL or Creative Commons ShareAlike license (pick any suitable). http://morfologik.blogspot.com
-
-fsa.dict.separator=+
-fsa.dict.encoding=iso-8859-2
-
-fsa.dict.uses-prefixes=true
-fsa.dict.uses-infixes=true
diff --git a/src/morfologik/stemming/Dictionary.java b/src/morfologik/stemming/Dictionary.java
deleted file mode 100644
index 7441d5e..0000000
--- a/src/morfologik/stemming/Dictionary.java
+++ /dev/null
@@ -1,169 +0,0 @@
-package morfologik.stemming;
-
-import java.io.*;
-import java.net.URL;
-import java.util.*;
-
-import morfologik.fsa.FSA;
-import morfologik.util.FileUtils;
-import morfologik.util.ResourceUtils;
-
-/**
- * A dictionary combines {@link FSA} automaton and metadata describing the
- * internals of dictionary entries' coding ({@link DictionaryMetadata}.
- *
- * <p>
- * A dictionary consists of two files:
- * <ul>
- * <li>an actual compressed FSA file,
- * <li>a metadata file, describing the dictionary.
- * </ul>
- * Use static methods in this class to read dictionaries and their metadata.
- */
-public final class Dictionary {
- /**
- * Expected metadata file extension.
- */
- public final static String METADATA_FILE_EXTENSION = "info";
-
- /**
- * {@link FSA} automaton with the compiled dictionary data.
- */
- public final FSA fsa;
-
- /**
- * Metadata associated with the dictionary.
- */
- public final DictionaryMetadata metadata;
-
- /**
- * Default loaded dictionaries.
- */
- public static final WeakHashMap<String, Dictionary> defaultDictionaries = new WeakHashMap<String, Dictionary>();
-
- /**
- * It is strongly recommended to use static methods in this class for
- * reading dictionaries.
- *
- * @param fsa
- * An instantiated {@link FSA} instance.
- *
- * @param metadata
- * A map of attributes describing the compression format and
- * other settings not contained in the FSA automaton. For an
- * explanation of available attributes and their possible values,
- * see {@link DictionaryMetadata}.
- */
- public Dictionary(FSA fsa, DictionaryMetadata metadata) {
- this.fsa = fsa;
- this.metadata = metadata;
- }
-
- /**
- * Attempts to load a dictionary using the path to the FSA file and the
- * expected metadata extension.
- */
- public static Dictionary read(File fsaFile) throws IOException {
- final File featuresFile = new File(fsaFile.getParent(),
- getExpectedFeaturesName(fsaFile.getName()));
-
- FileUtils.assertExists(featuresFile, true, false);
-
- return readAndClose(new FileInputStream(fsaFile), new FileInputStream(
- featuresFile));
- }
-
- /**
- * <p>
- * Attempts to load a dictionary using the URL to the FSA file and the
- * expected metadata extension.
- *
- * <p>
- * This method can be used to load resource-based dictionaries, but be aware
- * of JAR resource-locking issues that arise from resource URLs.
- */
- public static Dictionary read(URL fsaURL) throws IOException {
- final String fsa = fsaURL.toExternalForm();
- final String features = getExpectedFeaturesName(fsa);
-
- return readAndClose(ResourceUtils.openInputStream(fsa), ResourceUtils
- .openInputStream(features));
- }
-
- /**
- * Attempts to load a dictionary from opened streams of FSA dictionary data
- * and associated metadata.
- */
- public static Dictionary readAndClose(InputStream fsaData,
- InputStream featuresData) throws IOException {
- try {
- final Properties properties = new Properties();
- properties.load(featuresData);
-
- final DictionaryMetadata features = DictionaryMetadata
- .fromMap(properties);
- final FSA fsa = FSA.read(fsaData);
-
- return new Dictionary(fsa, features);
- } finally {
- FileUtils.close(fsaData, featuresData);
- }
- }
-
- /**
- * Returns the expected name of the metadata file, based on the name of the
- * FSA dictionary file. The expected name is resolved by truncating any
- * suffix of <code>name</code> and appending
- * {@link #METADATA_FILE_EXTENSION}.
- */
- public static String getExpectedFeaturesName(String name) {
- final int dotIndex = name.lastIndexOf('.');
- final String featuresName;
- if (dotIndex >= 0) {
- featuresName = name.substring(0, dotIndex) + "."
- + METADATA_FILE_EXTENSION;
- } else {
- featuresName = name + "." + METADATA_FILE_EXTENSION;
- }
-
- return featuresName;
- }
-
- /**
- * Return a built-in dictionary for a given ISO language code. Dictionaries
- * are cached internally for potential reuse.
- *
- * @throws RuntimeException
- * Throws a {@link RuntimeException} if the dictionary is not
- * bundled with the library.
- */
- public static Dictionary getForLanguage(String languageCode) {
- if (languageCode == null || "".equals(languageCode)) {
- throw new IllegalArgumentException(
- "Language code must not be empty.");
- }
-
- synchronized (defaultDictionaries) {
- Dictionary dict = defaultDictionaries.get(languageCode);
- if (dict != null)
- return dict;
-
- try {
- final String dictPath = "morfologik/dictionaries/" + languageCode + ".dict";
- final String metaPath = Dictionary
- .getExpectedFeaturesName(dictPath);
-
- dict = Dictionary.readAndClose(
- ResourceUtils.openInputStream(dictPath),
- ResourceUtils.openInputStream(metaPath));
-
- defaultDictionaries.put(languageCode, dict);
- return dict;
- } catch (IOException e) {
- throw new RuntimeException(
- "Default dictionary resource for language '"
- + languageCode + "not found.", e);
- }
- }
- }
-}
diff --git a/src/morfologik/stemming/DictionaryLookup.java b/src/morfologik/stemming/DictionaryLookup.java
deleted file mode 100644
index ac90107..0000000
--- a/src/morfologik/stemming/DictionaryLookup.java
+++ /dev/null
@@ -1,355 +0,0 @@
-package morfologik.stemming;
-
-import static morfologik.fsa.MatchResult.*;
-
-import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.charset.*;
-import java.util.*;
-
-import morfologik.fsa.*;
-import morfologik.util.BufferUtils;
-
-/**
- * This class implements a dictionary lookup over an FSA dictionary. The
- * dictionary for this class should be prepared from a text file using Jan
- * Daciuk's FSA package (see link below).
- *
- * <p>
- * <b>Important:</b> finite state automatons in Jan Daciuk's implementation use
- * <em>bytes</em> not unicode characters. Therefore objects of this class always
- * have to be constructed with an encoding used to convert Java strings to byte
- * arrays and the other way around. You <b>can</b> use UTF-8 encoding, as it
- * should not conflict with any control sequences and separator characters.
- *
- * @see <a href="http://www.eti.pg.gda.pl/~jandac/fsa.html">FSA package Web
- * site</a>
- */
-public final class DictionaryLookup implements IStemmer, Iterable<WordData> {
- /** An FSA used for lookups. */
- private final FSATraversal matcher;
-
- /** An iterator for walking along the final states of {@link #fsa}. */
- private final FSAFinalStatesIterator finalStatesIterator;
-
- /** FSA's root node. */
- private final int rootNode;
-
- /** Expand buffers and arrays by this constant. */
- private final static int EXPAND_SIZE = 10;
-
- /** Private internal array of reusable word data objects. */
- private WordData[] forms = new WordData[0];
-
- /** A "view" over an array implementing */
- private ArrayViewList<WordData> formsList = new ArrayViewList<WordData>(
- forms, 0, forms.length);
-
- /**
- * Features of the compiled dictionary.
- *
- * @see DictionaryMetadata
- */
- private final DictionaryMetadata dictionaryMetadata;
-
- /**
- * Charset encoder for the FSA.
- */
- private final CharsetEncoder encoder;
-
- /**
- * Charset decoder for the FSA.
- */
- private final CharsetDecoder decoder;
-
- /**
- * The FSA we are using.
- */
- private final FSA fsa;
-
- /**
- * Internal reusable buffer for encoding words into byte arrays using
- * {@link #encoder}.
- */
- private ByteBuffer byteBuffer = ByteBuffer.allocate(0);
-
- /**
- * Internal reusable buffer for encoding words into byte arrays using
- * {@link #encoder}.
- */
- private CharBuffer charBuffer = CharBuffer.allocate(0);
-
- /**
- * Reusable match result.
- */
- private final MatchResult matchResult = new MatchResult();
-
- /**
- * The {@link Dictionary} this lookup is using.
- */
- private final Dictionary dictionary;
-
- /**
- * <p>
- * Creates a new object of this class using the given FSA for word lookups
- * and encoding for converting characters to bytes.
- *
- * @throws IllegalArgumentException
- * if FSA's root node cannot be acquired (dictionary is empty).
- */
- public DictionaryLookup(Dictionary dictionary)
- throws IllegalArgumentException {
- this.dictionary = dictionary;
- this.dictionaryMetadata = dictionary.metadata;
- this.rootNode = dictionary.fsa.getRootNode();
- this.fsa = dictionary.fsa;
- this.matcher = new FSATraversal(fsa);
- this.finalStatesIterator = new FSAFinalStatesIterator(fsa, fsa.getRootNode());
-
- if (rootNode == 0) {
- throw new IllegalArgumentException(
- "Dictionary must have at least the root node.");
- }
-
- if (dictionaryMetadata == null) {
- throw new IllegalArgumentException(
- "Dictionary metadata must not be null.");
- }
-
- try {
- Charset charset = Charset.forName(dictionaryMetadata.encoding);
- encoder = charset.newEncoder();
- decoder = charset.newDecoder().onMalformedInput(
- CodingErrorAction.REPORT).onUnmappableCharacter(
- CodingErrorAction.REPORT);
- } catch (UnsupportedCharsetException e) {
- throw new RuntimeException(
- "FSA's encoding charset is not supported: "
- + dictionaryMetadata.encoding);
- }
- }
-
- /**
- * Searches the automaton for a symbol sequence equal to <code>word</code>,
- * followed by a separator. The result is a stem (decompressed accordingly
- * to the dictionary's specification) and an optional tag data.
- */
- public List<WordData> lookup(CharSequence word) {
- final byte separator = dictionaryMetadata.separator;
-
- // Encode word characters into bytes in the same encoding as the FSA's.
- charBuffer.clear();
- charBuffer = BufferUtils.ensureCapacity(charBuffer, word.length());
- for (int i = 0; i < word.length(); i++)
- charBuffer.put(word.charAt(i));
- charBuffer.flip();
- byteBuffer = charsToBytes(charBuffer, byteBuffer);
-
- // Try to find a partial match in the dictionary.
- final MatchResult match = matcher.match(matchResult, byteBuffer
- .array(), 0, byteBuffer.remaining(), rootNode);
-
- if (match.kind == SEQUENCE_IS_A_PREFIX) {
- /*
- * The entire sequence exists in the dictionary. A separator should
- * be the next symbol.
- */
- final int arc = fsa.getArc(match.node, separator);
-
- /*
- * The situation when the arc points to a final node should NEVER
- * happen. After all, we want the word to have SOME base form.
- */
- if (arc != 0 && !fsa.isArcFinal(arc)) {
- // There is such a word in the dictionary. Return its base forms.
- int formsCount = 0;
-
- finalStatesIterator.restartFrom(fsa.getEndNode(arc));
- while (finalStatesIterator.hasNext()) {
- final ByteBuffer bb = finalStatesIterator.next();
- final byte[] ba = bb.array();
- final int bbSize = bb.remaining();
-
- if (formsCount >= forms.length) {
- forms = Arrays.copyOf(forms, forms.length + EXPAND_SIZE);
- for (int k = 0; k < forms.length; k++) {
- if (forms[k] == null)
- forms[k] = new WordData(decoder);
- }
- }
-
- /*
- * Now, expand the prefix/ suffix 'compression' and store
- * the base form.
- */
- final WordData wordData = forms[formsCount++];
- wordData.reset();
-
- wordData.wordBuffer = byteBuffer;
- wordData.wordCharSequence = word;
-
- /*
- * Find the separator byte's position splitting word form
- * and tag.
- */
- int sepPos;
- for (sepPos = 0; sepPos < bbSize; sepPos++) {
- if (ba[sepPos] == separator)
- break;
- }
-
- /*
- * Decode the stem into stem buffer.
- */
- wordData.stemBuffer.clear();
- wordData.stemBuffer = decodeStem(wordData.stemBuffer, ba,
- sepPos, byteBuffer, dictionaryMetadata);
- wordData.stemBuffer.flip();
-
- // Skip separator character.
- sepPos++;
-
- /*
- * Decode the tag data.
- */
- wordData.tagBuffer = BufferUtils.ensureCapacity(
- wordData.tagBuffer, bbSize - sepPos);
- wordData.tagBuffer.clear();
- wordData.tagBuffer.put(ba, sepPos, bbSize - sepPos);
- wordData.tagBuffer.flip();
- }
-
- formsList.wrap(forms, 0, formsCount);
- return formsList;
- }
- } else {
- /*
- * this case is somewhat confusing: we should have hit the separator
- * first... I don't really know how to deal with it at the time
- * being.
- */
- }
-
- return Collections.emptyList();
- }
-
- /**
- * Decode the base form of an inflected word and save its decoded form into
- * a byte buffer.
- *
- * @param bb
- * The byte buffer to save the result to. A new buffer may be
- * allocated if the capacity of <code>bb</code> is not large
- * enough to store the result. The buffer is not flipped upon
- * return.
- *
- * @param inflectedBuffer
- * Inflected form's bytes (decoded properly).
- *
- * @param bytes
- * Bytes of the encoded base form, starting at 0 index.
- *
- * @param len
- * Length of the encode base form.
- *
- * @return Returns either <code>bb</code> or a new buffer whose capacity is
- * large enough to store the output of the decoded data.
- */
- public static ByteBuffer decodeStem(ByteBuffer bb, byte[] bytes, int len,
- ByteBuffer inflectedBuffer, DictionaryMetadata metadata) {
- bb.clear();
-
- // Empty length? Weird, but return an empty buffer.
- if (len == 0) {
- return bb;
- }
-
- // Determine inflected string's length in bytes, in the same encoding.
- final byte[] infBytes = inflectedBuffer.array();
- final int infLen = inflectedBuffer.remaining();
- final int code0 = bytes[0] - 'A';
-
- final boolean fsaPrefixes = metadata.usesPrefixes;
- final boolean fsaInfixes = metadata.usesInfixes;
-
- // Increase buffer size, if needed.
- if (bb.capacity() < infLen + len) {
- bb = ByteBuffer.allocate(infLen + len);
- }
-
- if (code0 >= 0) {
- if (!fsaPrefixes && !fsaInfixes) {
- if (code0 <= infLen) {
- bb.put(infBytes, 0, infLen - code0);
- bb.put(bytes, 1, len - 1);
- return bb;
- }
- } else if (fsaPrefixes && !fsaInfixes) {
- if (len > 1) {
- final int stripAtEnd = bytes[1] - 'A' + code0;
- if (stripAtEnd <= infLen) {
- bb.put(infBytes, code0, infLen - stripAtEnd);
- bb.put(bytes, 2, len - 2);
- return bb;
- }
- }
- } else if (fsaInfixes) {
- // Note: Prefixes are silently assumed here.
- if (len > 2) {
- final int stripAtBeginning = bytes[1] - 'A' + code0;
- final int stripAtEnd = bytes[2] - 'A' + stripAtBeginning;
- if (stripAtEnd <= infLen) {
- bb.put(infBytes, 0, code0);
- bb.put(infBytes, stripAtBeginning, infLen - stripAtEnd);
- bb.put(bytes, 3, len - 3);
- return bb;
- }
- }
- }
- }
-
- /*
- * This is a fallback in case some junk is detected above. Return the
- * base form only if this is the case.
- */
- bb.clear();
- bb.put(bytes, 0, len);
- return bb;
- }
-
- /**
- * Encode a character sequence into a byte buffer, optionally expanding
- * buffer.
- */
- private ByteBuffer charsToBytes(CharBuffer chars, ByteBuffer bytes) {
- bytes.clear();
- final int maxCapacity = (int) (chars.remaining() * encoder
- .maxBytesPerChar());
- if (bytes.capacity() <= maxCapacity) {
- bytes = ByteBuffer.allocate(maxCapacity);
- }
-
- chars.mark();
- encoder.reset();
- encoder.encode(chars, bytes, true);
- bytes.flip();
- chars.reset();
-
- return bytes;
- }
-
- /**
- * Return an iterator over all {@link WordData} entries available in the
- * embedded {@link Dictionary}.
- */
- public Iterator<WordData> iterator() {
- return new DictionaryIterator(dictionary, decoder, true);
- }
-
- /**
- * @return Return the {@link Dictionary} used by this object.
- */
- public Dictionary getDictionary() {
- return dictionary;
- }
-}
diff --git a/src/morfologik/stemming/DictionaryMetadata.java b/src/morfologik/stemming/DictionaryMetadata.java
deleted file mode 100644
index ce5e507..0000000
--- a/src/morfologik/stemming/DictionaryMetadata.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package morfologik.stemming;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.util.*;
-
-/**
- * Description of attributes, their types and default values.
- *
- * @see Dictionary
- */
-public final class DictionaryMetadata {
- /**
- * Attribute name for {@link #separator}.
- */
- public final static String ATTR_NAME_SEPARATOR = "fsa.dict.separator";
-
- /**
- * Attribute name for {@link #encoding}.
- */
- public final static String ATTR_NAME_ENCODING = "fsa.dict.encoding";
-
- /**
- * Attribute name for {@link #usesPrefixes}.
- */
- public final static String ATTR_NAME_USES_PREFIXES = "fsa.dict.uses-prefixes";
-
- /**
- * Attribute name for {@link #usesInfixes}.
- */
- public final static String ATTR_NAME_USES_INFIXES = "fsa.dict.uses-infixes";
-
- /**
- * A separator character between fields (stem, lemma, form). The character
- * must be within byte range (FSA uses bytes internally).
- */
- public final byte separator;
-
- /**
- * Encoding used for converting bytes to characters and vice versa.
- */
- public final String encoding;
-
- /**
- * True if the dictionary was compiled with prefix compression.
- */
- public final boolean usesPrefixes;
-
- /**
- * True if the dictionary was compiled with infix compression.
- */
- public final boolean usesInfixes;
-
- /**
- * Other meta data not included above.
- */
- public final Map<String, String> metadata;
-
- /**
- * Creates an immutable instance of {@link DictionaryMetadata}.
- */
- public DictionaryMetadata(char separator, String encoding,
- boolean usesPrefixes, boolean usesInfixes,
- Map<String, String> metadata) {
- this.encoding = encoding;
- this.usesPrefixes = usesPrefixes;
- this.usesInfixes = usesInfixes;
-
- try {
- final byte[] separatorBytes = new String(new char[] { separator })
- .getBytes(encoding);
- if (separatorBytes.length != 1) {
- throw new RuntimeException(
- "Separator character '"
- + separator
- + "' must be a single byte after transformation with encoding: "
- + encoding);
- }
- this.separator = separatorBytes[0];
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException("Encoding not supported on this VM: "
- + encoding);
- }
-
- this.metadata = Collections
- .unmodifiableMap(new HashMap<String, String>(metadata));
- }
-
- /**
- * Converts attributes in a {@link Map} to an instance of {@link Dictionary}
- * , validating attribute values.
- */
- static DictionaryMetadata fromMap(Properties properties) throws IOException {
- final String separator = properties.getProperty(ATTR_NAME_SEPARATOR);
- if (separator == null || separator.length() != 1) {
- throw new IOException("Attribute " + ATTR_NAME_SEPARATOR
- + " must be " + "a single character.");
- }
-
- final String encoding = properties.getProperty(ATTR_NAME_ENCODING);
- if (encoding == null || encoding.length() == 0) {
- throw new IOException("Attribute " + ATTR_NAME_ENCODING
- + " must be " + "present and non-empty.");
- }
-
- final boolean usesPrefixes = Boolean.valueOf(
- properties.getProperty(ATTR_NAME_USES_PREFIXES, "false"))
- .booleanValue();
-
- final boolean usesInfixes = Boolean.valueOf(
- properties.getProperty(ATTR_NAME_USES_INFIXES, "false"))
- .booleanValue();
-
- final HashMap<String, String> metadata = new HashMap<String, String>();
- for (Map.Entry<Object, Object> e : properties.entrySet()) {
- metadata.put(e.getKey().toString(), e.getValue().toString());
- }
-
- return new DictionaryMetadata(separator.charAt(0), encoding,
- usesPrefixes, usesInfixes, metadata);
- }
-}
diff --git a/src/morfologik/stemming/PolishStemmer.java b/src/morfologik/stemming/PolishStemmer.java
deleted file mode 100644
index 299f76a..0000000
--- a/src/morfologik/stemming/PolishStemmer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package morfologik.stemming;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * A dictionary-based stemmer for the Polish language. This stemmer requires an
- * FSA-compiled dictionary to be present in classpath resources.
- *
- * <b>Objects of this class are not thread safe.</b>
- *
- * @see morfologik.stemming.DictionaryLookup
- */
-public final class PolishStemmer implements IStemmer, Iterable<WordData> {
- /**
- * Dictionary lookup delegate.
- */
- private final DictionaryLookup delegate;
-
- /**
- * This constructor is initialized with a built-in dictionary or fails with
- * a runtime exception if the dictionary is not available.
- */
- public PolishStemmer() {
- final String languageCode = "pl";
-
- this.delegate = new DictionaryLookup(Dictionary.getForLanguage(languageCode));
- }
-
- /**
- * {@inheritDoc}
- */
- public List<WordData> lookup(CharSequence word) {
- return delegate.lookup(word);
- }
-
- /**
- * Iterates over all dictionary forms stored in this stemmer.
- */
- public Iterator<WordData> iterator() {
- return delegate.iterator();
- }
-}
diff --git a/src/morfologik/tools/MorphEncoder.java b/src/morfologik/tools/MorphEncoder.java
deleted file mode 100644
index 236c1aa..0000000
--- a/src/morfologik/tools/MorphEncoder.java
+++ /dev/null
@@ -1,399 +0,0 @@
-package morfologik.tools;
-
-import java.io.UnsupportedEncodingException;
-
-import morfologik.fsa.FSA5;
-
-/**
- * A class that converts tabular data to fsa morphological format. Three formats
- * are supported:
- * <ul>
- * <li><b>standard</b>, see {@link #standardEncode}</li>
- * <li><b>prefix</b>, see {@link #prefixEncode}</li>
- * <li><b>infix</b>, see {@link #infixEncode}</li>
- * </ul>
- */
-public final class MorphEncoder {
- private final byte annotationSeparator;
-
- private static final int MAX_PREFIX_LEN = 3;
- private static final int MAX_INFIX_LEN = 3;
-
- private static final String UTF8 = "UTF-8";
-
- public MorphEncoder() {
- this(FSA5.DEFAULT_ANNOTATION);
- }
-
- public MorphEncoder(byte annotationSeparator) {
- this.annotationSeparator = annotationSeparator;
- }
-
- public static int commonPrefix(final byte[] s1, final byte[] s2) {
- final int maxLen = Math.min(s1.length, s2.length);
- for (int i = 0; i < maxLen; i++) {
- if (s1[i] != s2[i]) {
- return i;
- }
- }
- return maxLen;
- }
-
- private static byte[] subsequence(final byte[] bytes, final int start) {
- final byte[] newArray = new byte[bytes.length - start];
- System.arraycopy(bytes, start, newArray, 0, bytes.length - start);
- return newArray;
- }
-
- private static int copyTo(byte[] dst, final int pos, final byte[] src) {
- System.arraycopy(src, 0, dst, pos, src.length);
- return src.length;
- }
-
- private static int copyTo(byte[] dst, final int pos, final byte src) {
- byte[] single = new byte[1];
- single[0] = src;
- System.arraycopy(single, 0, dst, pos, 1);
- return 1;
- }
-
- /**
- * This method converts the wordForm, wordLemma and tag to the form:
- *
- * <pre>
- * wordForm + Kending + tags
- * </pre>
- *
- * where '+' is a separator, K is a character that specifies how many
- * characters should be deleted from the end of the inflected form to
- * produce the lexeme by concatenating the stripped string with the ending.
- *
- */
- public byte[] standardEncode(final byte[] wordForm,
- final byte[] wordLemma, final byte[] wordTag) {
- final int l1 = wordForm.length;
- final int prefix = commonPrefix(wordForm, wordLemma);
- final int len = wordLemma.length - prefix;
- int pos = 0;
- // 3 = 2 separators and K character
- int arrayLen = l1 + len + 3;
- if (wordTag != null) { //wordTag may be empty for stemming
- arrayLen += wordTag.length;
- }
- final byte[] bytes = new byte[arrayLen];
- pos += copyTo(bytes, pos, wordForm);
- pos += copyTo(bytes, pos, annotationSeparator);
- if (prefix == 0) {
- pos += copyTo(bytes, pos, (byte) ((l1 + 65) & 0xff));
- pos += copyTo(bytes, pos, wordLemma);
- } else {
- pos += copyTo(bytes, pos, (byte) ((l1 - prefix + 65) & 0xff));
- pos += copyTo(bytes, pos, subsequence(wordLemma, prefix));
- }
- pos += copyTo(bytes, pos, annotationSeparator);
- if (wordTag != null) {
- pos += copyTo(bytes, pos, wordTag);
- }
- return bytes;
- }
-
- /**
- * This method converts wordform, wordLemma and the tag to the form:
- * <p>
- *
- * <pre>
- * inflected_form + LKending + tags
- * </pre>
- * <p>
- * where '+' is a separator, L is the number of characters to be deleted
- * from the beginning of the word ("A" means none, "B" means one, "C" - 2,
- * etc.), K is a character that specifies how many characters should be
- * deleted from the end of the inflected form to produce the lexeme by
- * concatenating the stripped string with the ending ("A" means none,
- * "B' - 1, "C" - 2, and so on).
- *
- * @param wordForm
- * - inflected word form
- * @param wordLemma
- * - canonical form
- * @param wordTag
- * - tag
- * @return the encoded string
- */
- public byte[] prefixEncode(final byte[] wordForm,
- final byte[] wordLemma, final byte[] wordTag) {
- final int l1 = wordForm.length;
- final int prefix = commonPrefix(wordForm, wordLemma);
-
- // 4 = 2 separators + LK characters
- int arrayLen = l1 + wordLemma.length + 4;
- if (wordTag != null) {
- arrayLen += wordTag.length;
- }
- final byte[] bytes = new byte[arrayLen];
- int pos = 0;
- pos += copyTo(bytes, pos, wordForm);
- pos += copyTo(bytes, pos, annotationSeparator);
- if (prefix == 0) {
- int prefixFound = 0;
- int prefix1 = 0;
- final int max = Math.min(wordForm.length, MAX_PREFIX_LEN);
- for (int i = 1; i <= max; i++) {
- prefix1 = commonPrefix(subsequence(wordForm, i), wordLemma);
- if (prefix1 > 2) {
- prefixFound = i;
- break;
- }
- }
- if (prefixFound == 0) {
- pos += copyTo(bytes, pos, (byte) 'A');
- pos += copyTo(bytes, pos, (byte) ((l1 + 65) & 0xff));
- pos += copyTo(bytes, pos, wordLemma);
- } else {
- pos += copyTo(bytes, pos, (byte) ((prefixFound + 65) & 0xff));
- pos += copyTo(bytes, pos,
- (byte) ((l1 - prefixFound - prefix1 + 65) & 0xff));
- pos += copyTo(bytes, pos, subsequence(wordLemma, prefix1));
- }
- } else {
- pos += copyTo(bytes, pos, (byte) 'A');
- pos += copyTo(bytes, pos, (byte) ((l1 - prefix + 65) & 0xff));
- pos += copyTo(bytes, pos, subsequence(wordLemma, prefix));
- }
- pos += copyTo(bytes, pos, annotationSeparator);
- if (wordTag != null) {
- pos += copyTo(bytes, pos, wordTag);
- }
- final byte[] finalArray = new byte[pos];
- System.arraycopy(bytes, 0, finalArray, 0, pos);
- return finalArray;
- }
-
- /**
- * This method converts wordform, wordLemma and the tag to the form:
- * <pre>
- * inflected_form + MLKending + tags
- * </pre>
- * <p>
- * where '+' is a separator, M is the position of characters to be deleted
- * towards the beginning of the inflected form ("A" means from the
- * beginning, "B" from the second character, "C" - from the third one, and
- * so on), L is the number of characters to be deleted from the position
- * specified by M ("A" means none, "B" means one, "C" - 2, etc.), K is a
- * character that specifies how many characters should be deleted from the
- * end of the inflected form to produce the lexeme by concatenating the
- * stripped string with the ending ("A" means none, "B' - 1, "C" - 2, and so
- * on).
- *
- * @param wordForm
- * - inflected word form
- * @param wordLemma
- * - canonical form
- * @param wordTag
- * - tag
- * @return the encoded string
- */
- public byte[] infixEncode(final byte[] wordForm,
- final byte[] wordLemma, final byte[] wordTag) {
- final int l1 = wordForm.length;
- int prefixFound = 0;
- int prefix1 = 0;
- final int prefix = commonPrefix(wordForm, wordLemma);
- final int max = Math.min(l1, MAX_INFIX_LEN);
-
- // 5 = 2 separators + MLK characters
- int arrayLen = l1 + wordLemma.length + 5;
- if (wordTag != null) {
- arrayLen += wordTag.length;
- }
- final byte[] bytes = new byte[arrayLen];
- int pos = 0;
- pos += copyTo(bytes, pos, wordForm);
- pos += copyTo(bytes, pos, annotationSeparator);
- if (prefix == 0) {
- // we may have a prefix
- for (int i = 1; i <= max; i++) {
- prefix1 = commonPrefix(subsequence(wordForm, i), wordLemma);
- if (prefix1 > 2) {
- prefixFound = i;
- break;
- }
- }
- if (prefixFound == 0) {
- pos += copyTo(bytes, pos, (byte) 'A');
- pos += copyTo(bytes, pos, (byte) 'A');
- pos += copyTo(bytes, pos, (byte) ((l1 + 65) & 0xff));
- pos += copyTo(bytes, pos, wordLemma);
- } else {
- pos += copyTo(bytes, pos, (byte) 'A');
- pos += copyTo(bytes, pos, (byte) ((prefixFound + 65) & 0xff));
- pos += copyTo(bytes, pos,
- (byte) ((l1 - prefixFound - prefix1 + 65) & 0xff));
- pos += copyTo(bytes, pos, subsequence(wordLemma, prefix1));
- }
- } else { // prefix found but we have to check the infix
-
- for (int i = 1; i <= max; i++) {
- prefix1 = commonPrefix(subsequence(wordForm, i), wordLemma);
- if (prefix1 > 2) {
- prefixFound = i;
- break;
- }
- }
- int prefix2 = 0;
- int infixFound = 0;
- final int max2 = Math.min(l1 - prefix, MAX_INFIX_LEN);
- for (int i = 1; i <= max2; i++) {
- prefix2 = commonPrefix(subsequence(wordForm, prefix + i),
- subsequence(wordLemma, prefix));
- if (prefix2 > 2) {
- infixFound = i;
- break;
- }
- }
-
- if (prefixFound > infixFound) {
- if (prefixFound > 0 && (prefix1 > prefix)) {
- pos += copyTo(bytes, pos, (byte) 'A');
- pos += copyTo(bytes, pos,
- (byte) ((prefixFound + 65) & 0xff));
- pos += copyTo(bytes, pos, (byte) ((l1 - prefixFound
- - prefix1 + 65) & 0xff));
- pos += copyTo(bytes, pos, subsequence(wordLemma, prefix1));
- } else {
- // infixFound == 0 && prefixFound == 0
- pos += copyTo(bytes, pos, (byte) 'A');
- pos += copyTo(bytes, pos, (byte) 'A');
- pos += copyTo(bytes, pos,
- (byte) ((l1 - prefix + 65) & 0xff));
- pos += copyTo(bytes, pos, subsequence(wordLemma, prefix));
- }
- } else if (infixFound > 0 && prefix2 > 0) {
- // we have an infix, , and if there seems to be a prefix,
- // the infix is longer
- pos += copyTo(bytes, pos, (byte) ((prefix + 65) & 0xff));
- pos += copyTo(bytes, pos, (byte) ((infixFound + 65) & 0xff));
- pos += copyTo(bytes, pos, (byte) ((l1 - prefix - prefix2
- - infixFound + 65) & 0xff));
- pos += copyTo(bytes, pos,
- subsequence(wordLemma, prefix + prefix2));
- } else {
- // we have an infix, and if there seems to be a prefix,
- // the infix is longer
- // but the common prefix of two words is longer
- pos += copyTo(bytes, pos, (byte) 'A');
- pos += copyTo(bytes, pos, (byte) 'A');
- pos += copyTo(bytes, pos, (byte) ((l1 - prefix + 65) & 0xff));
- pos += copyTo(bytes, pos, subsequence(wordLemma, prefix));
- }
-
- }
- pos += copyTo(bytes, pos, annotationSeparator);
- if (wordTag != null) {
- pos += copyTo(bytes, pos, wordTag);
- }
- final byte[] finalArray = new byte[pos];
- System.arraycopy(bytes, 0, finalArray, 0, pos);
- return finalArray;
- }
-
- /**
- * Converts a byte array to a given encoding.
- *
- * @param str
- * Byte-array to be converted.
- * @return Java String. If decoding is unsuccessful, the string is empty.
- */
- protected static String asString(final byte[] str, final String encoding) {
- try {
- return new String(str, encoding);
- } catch (UnsupportedEncodingException e) {
- return "";
- }
- }
-
- /**
- * A UTF-8 variant of {@link #standardEncode(byte[], byte[], byte[])} This
- * method converts the wordForm, wordLemma and tag to the form:
- *
- * <pre>
- * wordForm + Kending + tags
- * </pre>
- *
- * where '+' is a separator, K is a character that specifies how many
- * characters should be deleted from the end of the inflected form to
- * produce the lexeme by concatenating the stripped string with the ending.
- *
- * @throws UnsupportedEncodingException
- */
- public String standardEncodeUTF8(final String wordForm,
- final String wordLemma, final String wordTag)
- throws UnsupportedEncodingException {
- return asString(standardEncode(wordForm.getBytes(UTF8), wordLemma
- .getBytes(UTF8), wordTag.getBytes(UTF8)), UTF8);
- }
-
- /**
- * A UTF-8 variant of {@link #prefixEncode(byte[], byte[], byte[])} This
- * method converts wordform, wordLemma and the tag to the form:
- * <pre>
- * inflected_form + LKending + tags
- * </pre>
- * <p>
- * where '+' is a separator, L is the number of characters to be deleted
- * from the beginning of the word ("A" means none, "B" means one, "C" - 2,
- * etc.), K is a character that specifies how many characters should be
- * deleted from the end of the inflected form to produce the lexeme by
- * concatenating the stripped string with the ending ("A" means none,
- * "B' - 1, "C" - 2, and so on).
- *
- * @param wordForm
- * - inflected word form
- * @param wordLemma
- * - canonical form
- * @param wordTag
- * - tag
- * @return the encoded string
- * @throws UnsupportedEncodingException
- */
- public String prefixEncodeUTF8(final String wordForm,
- final String wordLemma, final String wordTag)
- throws UnsupportedEncodingException {
- return asString(prefixEncode(wordForm.getBytes(UTF8), wordLemma
- .getBytes(UTF8), wordTag.getBytes(UTF8)), UTF8);
- }
-
- /**
- * A UTF-8 variant of {@link #infixEncode(byte[], byte[], byte[])}.
- *
- * This method converts wordform, wordLemma and the tag to the form:
- * <pre>
- * inflected_form + MLKending + tags
- * </pre>
- * <p>
- * where '+' is a separator, M is the position of characters to be deleted
- * towards the beginning of the inflected form ("A" means from the
- * beginning, "B" from the second character, "C" - from the third one, and
- * so on), L is the number of characters to be deleted from the position
- * specified by M ("A" means none, "B" means one, "C" - 2, etc.), K is a
- * character that specifies how many characters should be deleted from the
- * end of the inflected form to produce the lexeme by concatenating the
- * stripped string with the ending ("A" means none, "B' - 1, "C" - 2, and so
- * on).
- *
- * @param wordForm
- * - inflected word form
- * @param wordLemma
- * - canonical form
- * @param wordTag
- * - tag
- * @return the encoded string
- * @throws UnsupportedEncodingException
- */
- public String infixEncodeUTF8(final String wordForm,
- final String wordLemma, final String wordTag)
- throws UnsupportedEncodingException {
- return asString(infixEncode(wordForm.getBytes(UTF8), wordLemma
- .getBytes(UTF8), wordTag.getBytes(UTF8)), UTF8);
- }
-}
diff --git a/src/morfologik/tools/MorphEncodingTool.java b/src/morfologik/tools/MorphEncodingTool.java
deleted file mode 100644
index 223a32b..0000000
--- a/src/morfologik/tools/MorphEncodingTool.java
+++ /dev/null
@@ -1,213 +0,0 @@
-package morfologik.tools;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import morfologik.fsa.FSA5;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-
-/**
- * This utility converts the dictionary in a text (tabbed) format into
- * the format accepted by the fsa building tools. It is meant to replace
- * the Perl and AWK scripts from the original FSA package.
- */
-class MorphEncodingTool extends Tool {
-
- private boolean prefixes = false;
- private boolean infixes = false;
- private boolean noWarn = false;
-
- private MorphEncoder encoder;
-
- /**
- *
- */
- protected void go(final CommandLine line) throws Exception {
-
- noWarn = line.hasOption(SharedOptions.noWarnIfTwoFields.getOpt());
-
- infixes = line.hasOption(SharedOptions.infixEncoding.getOpt());
-
- if (!infixes) {
- prefixes = line.hasOption(SharedOptions.prefixEncoding.getOpt());
- }
-
- char separator = FSA5.DEFAULT_ANNOTATION;
- if (line.hasOption(SharedOptions.annotationSeparatorCharacterOption.getLongOpt())) {
- String sep = line.getOptionValue(SharedOptions.annotationSeparatorCharacterOption.getLongOpt());
-
- if (sep.length() == 1) {
- separator = sep.charAt(0);
- }
-
- FSABuildTool.checkSingleByte(Character.toString(separator));
- }
- encoder = new MorphEncoder((byte) separator);
-
- // Determine input and output streams.
- final DataInputStream input = initializeInput(line);
- final DataOutputStream output = initializeOutput(line);
-
- try {
- process(input, output);
- output.flush();
-
- } finally {
- input.close();
- output.close();
- }
-
- }
-
- /**
- * Split fields
- * @param line
- * byte input buffer
- * @param pos
- * current offset in the file
- * @return
- * an array of three byte arrays; if there are less
- * than three fields, one of byte arrays is null. If the
- * line contains more than three fields, they are ignored.
- */
- private static byte[][] splitFields(final byte[] line, final int pos) {
- byte[][] outputArray = new byte[3][];
- int i = 0;
- int prevPos = 0;
- int arrayInd = 0;
- while (i < pos) {
- if (line[i] == (byte)'\t') { //tab
- outputArray[arrayInd] = new byte[i - prevPos];
- System.arraycopy(line, prevPos, outputArray[arrayInd], 0, i - prevPos);
- prevPos = i + 1;
- arrayInd++;
- }
- i++;
- }
- return outputArray;
- }
-
- /**
- * Process input stream, writing to output stream.
- *
- */
- protected void process(final DataInputStream input, final DataOutputStream output)
- throws IOException {
- long lnumber = 0;
- try {
- int bufPos = 0;
- byte[] buf = new byte[0xfffff]; // assumed that line is shorter than
- // 64K chars
- int dataByte = -1; // not declared within while loop
- byte[][] words;
- while ((dataByte = input.read()) != -1) {
- if (dataByte == (byte) '\n') {
- lnumber++;
- buf[bufPos++] = 9;
- words = splitFields(buf, bufPos);
- for (int i = 0; i < words.length; i++) {
- if (i < 1 && words[i] == null) {
- throw new IllegalArgumentException(
- "The input file has less than 2 fields in line: "
- + lnumber);
- }
- if (words[i] == null && !noWarn) {
- System.err.println("Line number: " + lnumber + " has less than three fields.");
- }
- }
-
- if (infixes) {
- output.write(encoder.infixEncode(words[0], words[1], words[2]));
- } else if (prefixes) {
- output.write(encoder.prefixEncode(words[0], words[1], words[2]));
- } else {
- output.write(encoder.standardEncode(words[0], words[1], words[2]));
- }
-
- output.writeByte('\n'); // Unix line end only.
- bufPos = 0;
- } else {
- if (dataByte != (byte) '\r') {
- buf[bufPos++] = (byte) dataByte;
- }
- }
- }
- } finally {
- input.close();
- }
- }
-
- /**
- * Command line options for the tool.
- */
- protected void initializeOptions(Options options) {
- options.addOption(SharedOptions.inputFileOption);
- options.addOption(SharedOptions.outputFileOption);
- options.addOption(SharedOptions.standardEncoding);
- options.addOption(SharedOptions.prefixEncoding);
- options.addOption(SharedOptions.infixEncoding);
- options.addOption(SharedOptions.noWarnIfTwoFields);
- options.addOption(SharedOptions.annotationSeparatorCharacterOption);
- }
-
- /**
- *
- */
- private static DataOutputStream initializeOutput(CommandLine line)
- throws IOException, ParseException {
- final DataOutputStream output;
- final String opt = SharedOptions.outputFileOption.getOpt();
- if (line.hasOption(opt)) {
- // Use output file.
- output = new DataOutputStream(
- new BufferedOutputStream(
- new FileOutputStream((File) line
- .getParsedOptionValue(opt))));
- } else {
- // Use standard output.
- output = new DataOutputStream(
- new BufferedOutputStream(
- System.out));
- }
- return output;
- }
-
- /**
- *
- */
- private static DataInputStream initializeInput(CommandLine line)
- throws IOException, ParseException {
- final DataInputStream input;
- final String opt = SharedOptions.inputFileOption.getOpt();
- if (line.hasOption(opt)) {
- // Use input file.
- input = new DataInputStream (
- new BufferedInputStream(
- new FileInputStream((File) line
- .getParsedOptionValue(opt))));
- } else {
- // Use standard input.
- input = new DataInputStream(
- new BufferedInputStream(
- System.in));
- }
- return input;
- }
-
- /**
- * Command line entry point.
- */
- public static void main(String[] args) throws Exception {
- final MorphEncodingTool tool = new MorphEncodingTool();
- tool.go(args);
- }
-} \ No newline at end of file