foray-commit Mailing List for FOray (Page 22)
Modular XSL-FO Implementation for Java.
Status: Alpha
Brought to you by:
victormote
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
(139) |
Apr
(98) |
May
(250) |
Jun
(394) |
Jul
(84) |
Aug
(13) |
Sep
(420) |
Oct
(186) |
Nov
(1) |
Dec
(3) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(108) |
Feb
(202) |
Mar
(291) |
Apr
(247) |
May
(374) |
Jun
(227) |
Jul
(231) |
Aug
(60) |
Sep
(31) |
Oct
(45) |
Nov
(18) |
Dec
|
| 2008 |
Jan
(38) |
Feb
(71) |
Mar
(142) |
Apr
|
May
(59) |
Jun
(6) |
Jul
(10) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
(12) |
Feb
(4) |
Mar
(88) |
Apr
(121) |
May
(17) |
Jun
(30) |
Jul
|
Aug
(5) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2010 |
Jan
(11) |
Feb
(76) |
Mar
(11) |
Apr
|
May
(11) |
Jun
|
Jul
|
Aug
(44) |
Sep
(14) |
Oct
(7) |
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(9) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(10) |
Nov
|
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(4) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(168) |
| 2017 |
Jan
(77) |
Feb
(11) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
(1) |
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2019 |
Jan
|
Feb
(88) |
Mar
(118) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(141) |
| 2021 |
Jan
(170) |
Feb
(20) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(62) |
Nov
(189) |
Dec
(162) |
| 2022 |
Jan
(201) |
Feb
(118) |
Mar
(8) |
Apr
|
May
(2) |
Jun
(47) |
Jul
(19) |
Aug
(14) |
Sep
(3) |
Oct
|
Nov
(28) |
Dec
(235) |
| 2023 |
Jan
(112) |
Feb
(23) |
Mar
(2) |
Apr
(2) |
May
|
Jun
(1) |
Jul
|
Aug
(70) |
Sep
(92) |
Oct
(20) |
Nov
(1) |
Dec
(1) |
| 2024 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(14) |
Jun
(11) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2025 |
Jan
(10) |
Feb
(29) |
Mar
|
Apr
(162) |
May
(245) |
Jun
(83) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <vic...@us...> - 2025-01-10 13:57:54
|
Revision: 13351
http://sourceforge.net/p/foray/code/13351
Author: victormote
Date: 2025-01-10 13:57:52 +0000 (Fri, 10 Jan 2025)
Log Message:
-----------
Upgrade Gradle to 8.12.
Modified Paths:
--------------
trunk/foray/gradle/wrapper/gradle-wrapper.jar
trunk/foray/gradle/wrapper/gradle-wrapper.properties
trunk/foray/gradlew
Modified: trunk/foray/gradle/wrapper/gradle-wrapper.jar
===================================================================
(Binary files differ)
Modified: trunk/foray/gradle/wrapper/gradle-wrapper.properties
===================================================================
--- trunk/foray/gradle/wrapper/gradle-wrapper.properties 2025-01-10 13:26:01 UTC (rev 13350)
+++ trunk/foray/gradle/wrapper/gradle-wrapper.properties 2025-01-10 13:57:52 UTC (rev 13351)
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
networkTimeout=10000
+validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Modified: trunk/foray/gradlew
===================================================================
--- trunk/foray/gradlew 2025-01-10 13:26:01 UTC (rev 13350)
+++ trunk/foray/gradlew 2025-01-10 13:57:52 UTC (rev 13351)
@@ -85,9 +85,6 @@
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
-
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -133,10 +130,13 @@
fi
else
JAVACMD=java
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
+ fi
fi
# Increase the maximum file descriptors if we can.
@@ -144,7 +144,7 @@
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
+ # shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
@@ -152,7 +152,7 @@
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
- # shellcheck disable=SC3045
+ # shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -197,6 +197,10 @@
done
fi
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-01-10 13:26:07
|
Revision: 13350
http://sourceforge.net/p/foray/code/13350
Author: victormote
Date: 2025-01-10 13:26:01 +0000 (Fri, 10 Jan 2025)
Log Message:
-----------
Conform to axsl changes: Standardize parsing method names, at least for font-related methods.
Modified Paths:
--------------
trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java 2025-01-10 04:10:45 UTC (rev 13349)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java 2025-01-10 13:26:01 UTC (rev 13350)
@@ -434,8 +434,8 @@
final RegisteredFontContent content = this.fontServer.getRegisteredFont(contentString);
final FontStyle style = FontStyle.parseFo(styleString);
final FontWeight weight = FontWeight.parseFo(weightString);
- final FontVariant variant = FontVariant.fromName(variantString);
- final FontStretch stretch = FontStretch.fromName(stretchString);
+ final FontVariant variant = FontVariant.parseFo(variantString);
+ final FontStretch stretch = FontStretch.parseFo(stretchString);
// final float simulateOblique = Float.parseFloat(simulateObliqueString);
// final String simulateBackslant = attributes.getValue("simulate-backslant");
final PsEncoding encoding = encodingString == null ? null :
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-01-10 04:10:48
|
Revision: 13349
http://sourceforge.net/p/foray/code/13349
Author: victormote
Date: 2025-01-10 04:10:45 +0000 (Fri, 10 Jan 2025)
Log Message:
-----------
Conform to axsl change: Remove org.axsl.font.Font.Variant, org.axsl.font.Font.Stretch, and org.axsl.font.Font.SelectionStrategy in favor of similar classes in org.axsl.value.
Modified Paths:
--------------
trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontUse4a.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/FontFeatureSimulation4a.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java
trunk/foray/foray-font-tf/build.gradle
trunk/foray/foray-font-tf/src/main/java/org/foray/font/fixture/MockFontUse.java
trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java
trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java
trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java
Modified: trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java
===================================================================
--- trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -32,7 +32,6 @@
import org.foray.primitive.StringUtils;
import org.axsl.area.Area;
-import org.axsl.area.AreaTree;
import org.axsl.area.AreaTreeException;
import org.axsl.area.BlockLevelRa;
import org.axsl.constants.TypographicConstants;
@@ -1243,23 +1242,14 @@
}
/* Resolve the FO Tree values. */
- final FontSelectionStrategy foStrategy = foNeedingFont.traitFontSelectionStrategy(this);
+ final FontSelectionStrategy fontSelectionStrategy = foNeedingFont.traitFontSelectionStrategy(this);
final List<String> foFontFamily = foNeedingFont.traitFontFamily(this);
final FontStyle fontStyle = foNeedingFont.traitFontStyle(this);
final FontWeight fontWeight = foNeedingFont.traitFontWeight(this);
- final FontVariant foVariant = foNeedingFont.traitFontVariant(this);
- final FontStretch foStretch = foNeedingFont.traitFontStretch(this);
+ final FontVariant fontVariant = foNeedingFont.traitFontVariant(this);
+ final FontStretch fontStretch = foNeedingFont.traitFontStretch(this);
final int foFontSize = foNeedingFont.traitFontSize(this);
- /* Convert the FO Tree values to Font values. */
- final Font.SelectionStrategy fontSelectionStrategy = AreaTree.fontSelectionStrategyFromFo(foStrategy);
- final Font.Variant fontVariant = AreaTree.fontVariantFromFo(foVariant);
- final Font.Stretch fontStretch = AreaTree.fontStretchFromFo(foStretch);
-
-
-
-
-
final FontConsumer fontConsumer = getAreaTree().getFontConsumer();
final FontUse resolvedFont = fontConsumer.selectFontXsl(fontSelectionStrategy, foFontFamily, fontStyle,
fontWeight, fontVariant, fontStretch, foFontSize, firstChar);
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -33,7 +33,6 @@
import org.foray.font.config.RegisteredFontFamily;
import org.foray.font.format.Panose4a;
-import org.axsl.font.Font;
import org.axsl.font.FontConsumer;
import org.axsl.font.FontException;
import org.axsl.font.FontSelectionConstraints;
@@ -41,7 +40,10 @@
import org.axsl.font.Panose;
import org.axsl.font.zzz.FontSelectionConstraintsMdo;
import org.axsl.ps.Encoding;
+import org.axsl.value.FontSelectionStrategy;
+import org.axsl.value.FontStretch;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontVariant;
import org.axsl.value.FontWeight;
import org.slf4j.Logger;
@@ -167,7 +169,7 @@
* @return The appropriate font selector for the strategy.
*/
private FontSelector getFontSelector(
- final Font.SelectionStrategy strategy) {
+ final FontSelectionStrategy strategy) {
switch (strategy) {
case CHARACTER_BY_CHARACTER: {
return this.getFontSelectorCBC();
@@ -225,10 +227,10 @@
@Override
public org.axsl.font.FontUse selectFontXsl(
- final Font.SelectionStrategy selectionStrategy,
+ final FontSelectionStrategy selectionStrategy,
final List<String> familyList, final FontStyle style,
- final FontWeight weight, final Font.Variant variant,
- final Font.Stretch stretch, final int size, final int codePoint) {
+ final FontWeight weight, final FontVariant variant,
+ final FontStretch stretch, final int size, final int codePoint) {
final FontSelector selector = getFontSelector(selectionStrategy);
final RegisteredFont fontDescSelected = selector.selectFont(familyList, style, weight, variant, stretch, size,
codePoint);
@@ -429,9 +431,9 @@
@Override
public org.axsl.font.FontUse selectFontCss(final List<String> familyList,
final FontStyle style, final FontWeight weight,
- final Font.Variant variant, final Font.Stretch stretch,
+ final FontVariant variant, final FontStretch stretch,
final int size, final int codePoint) {
- return selectFontXsl(Font.SelectionStrategy.CHARACTER_BY_CHARACTER,
+ return selectFontXsl(FontSelectionStrategy.CHARACTER_BY_CHARACTER,
familyList, style, weight,
variant, stretch, size, codePoint);
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -30,8 +30,9 @@
import org.foray.font.config.RegisteredFont;
-import org.axsl.font.Font;
+import org.axsl.value.FontStretch;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontVariant;
import org.axsl.value.FontWeight;
import java.util.List;
@@ -66,7 +67,7 @@
* @return The best registered font description matching the selection criteria.
*/
public abstract RegisteredFont selectFont(List<String> familyList, FontStyle style, FontWeight weight,
- Font.Variant variant, Font.Stretch stretch, int size, int codePoint);
+ FontVariant variant, FontStretch stretch, int size, int codePoint);
/**
* Returns the parent font consumer instance.
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -31,9 +31,10 @@
import org.foray.font.config.RegisteredFont;
import org.foray.font.config.RegisteredFontFamily;
-import org.axsl.font.Font;
import org.axsl.font.FontSelectionConstraints;
+import org.axsl.value.FontStretch;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontVariant;
import org.axsl.value.FontWeight;
import java.util.List;
@@ -60,7 +61,7 @@
@Override
public RegisteredFont selectFont(final List<String> familyList, final FontStyle style, final FontWeight weight,
- final Font.Variant variant, final Font.Stretch stretch, final int size, final int codePoint) {
+ final FontVariant variant, final FontStretch stretch, final int size, final int codePoint) {
Font4a fontSelected = null;
RegisteredFont fontDescSelected = null;
if (familyList == null) {
@@ -98,7 +99,7 @@
* @return The {@link RegisteredFont} matching the selection criteria, or null if there is none.
*/
private RegisteredFont selectFont(final String familyToTry, final FontStyle style, final FontWeight weight,
- final Font.Variant variant, final Font.Stretch stretch, final int size) {
+ final FontVariant variant, final FontStretch stretch, final int size) {
if (familyToTry == null) {
return null;
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -46,7 +46,9 @@
import org.axsl.font.FontServer;
import org.axsl.ps.Encoding;
import org.axsl.ps.PsServer;
+import org.axsl.value.FontStretch;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontVariant;
import org.axsl.value.FontWeight;
import org.apache.commons.discovery.tools.DiscoverSingleton;
@@ -241,8 +243,8 @@
final RegisteredFontContent rf = new RegisteredFontContent(this, null, null, null, null, null, "serif");
final RegisteredFontFamily rff = this.registerFontFamily2("serif");
final RegisteredFont font = new RegisteredFont(rf, rff, null, FontStyle.NORMAL,
- FontWeight.NORMAL, org.axsl.font.Font.Variant.NORMAL,
- org.axsl.font.Font.Stretch.NORMAL, FontFeatureSimulation.DEFAULT);
+ FontWeight.NORMAL, FontVariant.NORMAL,
+ FontStretch.NORMAL, FontFeatureSimulation.DEFAULT);
rff.registerFont(font);
} catch (final FontException e) {
getLogger().error("Unable to create default system font.");
@@ -266,8 +268,8 @@
defaultFont = rff.findRegisteredFontDesc(
FontStyle.NORMAL,
FontWeight.NORMAL,
- org.axsl.font.Font.Variant.NORMAL,
- org.axsl.font.Font.Stretch.NORMAL,
+ FontVariant.NORMAL,
+ FontStretch.NORMAL,
freeStandingFont,
! freeStandingFont);
if (defaultFont != null) {
@@ -277,8 +279,8 @@
defaultFont = rff.findRegisteredFontDesc(
FontStyle.NORMAL,
FontWeight.NORMAL,
- org.axsl.font.Font.Variant.ANY,
- org.axsl.font.Font.Stretch.ANY,
+ FontVariant.NORMAL,
+ FontStretch.NORMAL,
freeStandingFont,
! freeStandingFont);
}
@@ -289,8 +291,8 @@
defaultFont = currentRff.findRegisteredFontDesc(
FontStyle.NORMAL,
FontWeight.NORMAL,
- org.axsl.font.Font.Variant.ANY,
- org.axsl.font.Font.Stretch.ANY,
+ FontVariant.NORMAL,
+ FontStretch.NORMAL,
freeStandingFont,
! freeStandingFont);
if (defaultFont != null) {
@@ -560,8 +562,8 @@
encoding,
style,
weight,
- org.axsl.font.Font.Variant.NORMAL,
- org.axsl.font.Font.Stretch.NORMAL,
+ FontVariant.NORMAL,
+ FontStretch.NORMAL,
simulation);
}
@@ -621,8 +623,8 @@
if (awtFont.isBold()) {
fontWeight = FontWeight.BOLD;
}
- final org.axsl.font.Font.Variant fontVariant = org.axsl.font.Font.Variant.NORMAL;
- final org.axsl.font.Font.Stretch fontStretch = org.axsl.font.Font.Stretch.NORMAL;
+ final FontVariant fontVariant = FontVariant.NORMAL;
+ final FontStretch fontStretch = FontStretch.NORMAL;
final RegisteredFont font = new RegisteredFont(rf, rff, null, fontStyle, fontWeight, fontVariant,
fontStretch, FontFeatureSimulation.DEFAULT);
try {
@@ -973,8 +975,8 @@
final String fontID, final Encoding encoding,
final FontStyle style,
final FontWeight weight,
- final org.axsl.font.Font.Variant variant,
- final org.axsl.font.Font.Stretch stretch,
+ final FontVariant variant,
+ final FontStretch stretch,
final FontFeatureSimulation simulation)
throws FontException {
final RegisteredFontFamily rff = this.getRegisteredFontFamily(fontFamily);
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontUse4a.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontUse4a.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontUse4a.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -42,7 +42,6 @@
import org.axsl.constants.PrimitiveConstants;
import org.axsl.constants.TypographicConstants;
import org.axsl.font.Font;
-import org.axsl.font.Font.Stretch;
import org.axsl.font.FontConsumer;
import org.axsl.font.FontContext;
import org.axsl.font.FontException;
@@ -55,6 +54,7 @@
import org.axsl.ps.CharSet;
import org.axsl.ps.Encoding;
import org.axsl.unicode.block.U0000_Basic_Latin;
+import org.axsl.value.FontStretch;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -300,7 +300,7 @@
}
@Override
- public BigDecimal simulateStretch(final Stretch stretch) {
+ public BigDecimal simulateStretch(final FontStretch stretch) {
return this.registeredFontDesc.getFontFeatureSimulation().getSimulatedStretch(stretch);
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -40,7 +40,9 @@
import org.axsl.ps.GlyphList;
import org.axsl.ps.PsEncoding;
import org.axsl.ps.PsException;
+import org.axsl.value.FontStretch;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontVariant;
import org.axsl.value.FontWeight;
import org.xml.sax.Attributes;
@@ -432,8 +434,8 @@
final RegisteredFontContent content = this.fontServer.getRegisteredFont(contentString);
final FontStyle style = FontStyle.parseFo(styleString);
final FontWeight weight = FontWeight.parseFo(weightString);
- final Font.Variant variant = Font.Variant.fromName(variantString);
- final Font.Stretch stretch = Font.Stretch.fromName(stretchString);
+ final FontVariant variant = FontVariant.fromName(variantString);
+ final FontStretch stretch = FontStretch.fromName(stretchString);
// final float simulateOblique = Float.parseFloat(simulateObliqueString);
// final String simulateBackslant = attributes.getValue("simulate-backslant");
final PsEncoding encoding = encodingString == null ? null :
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/FontFeatureSimulation4a.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/FontFeatureSimulation4a.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/FontFeatureSimulation4a.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -30,6 +30,7 @@
import org.axsl.font.Font;
import org.axsl.font.FontFeatureSimulation;
+import org.axsl.value.FontStretch;
import java.math.BigDecimal;
import java.util.EnumMap;
@@ -51,8 +52,8 @@
/** Map whose key is a {@link Font.Stretch} instance, and whose value is the percentage by which the font should be
* stretched horizontally to simulate the stretch for that key. */
- private Map<Font.Stretch, BigDecimal> fontStretchMap =
- new EnumMap<Font.Stretch, BigDecimal>(Font.Stretch.class);
+ private Map<FontStretch, BigDecimal> fontStretchMap =
+ new EnumMap<FontStretch, BigDecimal>(FontStretch.class);
/**
* Sets the simulated small-caps.
@@ -96,17 +97,17 @@
}
/**
- * Set the simulated font-stretch value for a given {@link Font.Stretch} key.
+ * Set the simulated font-stretch value for a given {@link FontStretch} key.
* @param fontStretch The font-stretch for which {@code value} will be set.
* @param value The percentage value by which the font should be stretched horizontally to simulate
* {@code fontStretch}.
*/
- public void setSimulateStretch(final Font.Stretch fontStretch, final BigDecimal value) {
+ public void setSimulateStretch(final FontStretch fontStretch, final BigDecimal value) {
this.fontStretchMap.put(fontStretch, value);
}
@Override
- public BigDecimal getSimulatedStretch(final Font.Stretch fontStretch) {
+ public BigDecimal getSimulatedStretch(final FontStretch fontStretch) {
return this.fontStretchMap.get(fontStretch);
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -28,10 +28,11 @@
package org.foray.font.config;
-import org.axsl.font.Font;
import org.axsl.font.FontFeatureSimulation;
import org.axsl.ps.Encoding;
+import org.axsl.value.FontStretch;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontVariant;
import org.axsl.value.FontWeight;
/**
@@ -95,10 +96,10 @@
private FontWeight fontWeight;
/** The variant value of this description. */
- private Font.Variant fontVariant;
+ private FontVariant fontVariant;
/** The stretch value of this description. */
- private Font.Stretch fontStretch;
+ private FontStretch fontStretch;
/** The font feature simulation for this registered font. */
private FontFeatureSimulation fontFeatureSimulation;
@@ -115,8 +116,8 @@
* @param simulation The font features to be simulated if not natively present.
*/
public RegisteredFont(final RegisteredFontContent rf, final RegisteredFontFamily rff, final Encoding encoding,
- final FontStyle fontStyle, final FontWeight fontWeight, final Font.Variant fontVariant,
- final Font.Stretch fontStretch, final FontFeatureSimulation simulation) {
+ final FontStyle fontStyle, final FontWeight fontWeight, final FontVariant fontVariant,
+ final FontStretch fontStretch, final FontFeatureSimulation simulation) {
this.registeredFont = rf;
this.registeredFontFamily = rff;
this.encoding = encoding;
@@ -182,7 +183,7 @@
* Return the font-variant for this registered description.
* @return The font-variant value.
*/
- public Font.Variant getFontVariant() {
+ public FontVariant getFontVariant() {
return this.fontVariant;
}
@@ -190,7 +191,7 @@
* Return the font-stretch for this registered description.
* @return The font-stretch value.
*/
- public Font.Stretch getFontStretch() {
+ public FontStretch getFontStretch() {
return this.fontStretch;
}
@@ -349,11 +350,8 @@
* considered in the test.
* @return True if and only if the style of this font description matches the criteria.
*/
- public boolean variantMatches(final Font.Variant desiredVariant,
+ public boolean variantMatches(final FontVariant desiredVariant,
final boolean considerSimulated) {
- if (desiredVariant == Font.Variant.ANY) {
- return true;
- }
if (considerSimulated) {
if (this.fontFeatureSimulation.getSimulatedSmallCaps() != null) {
/* If it can simulate small-caps, it can be used for either
@@ -361,7 +359,7 @@
return true;
}
}
- final Font.Variant actualVariant = getFontVariant();
+ final FontVariant actualVariant = getFontVariant();
if (actualVariant == desiredVariant) {
return true;
}
@@ -375,11 +373,8 @@
* considered in the test.
* @return True if and only if the style of this font description matches the criteria.
*/
- public boolean stretchMatches(final Font.Stretch desiredStretch, final boolean considerSimulated) {
- if (desiredStretch == Font.Stretch.ANY) {
- return true;
- }
- final Font.Stretch actualStretch = getFontStretch();
+ public boolean stretchMatches(final FontStretch desiredStretch, final boolean considerSimulated) {
+ final FontStretch actualStretch = getFontStretch();
if (actualStretch == desiredStretch) {
return true;
}
@@ -421,8 +416,8 @@
*/
public boolean matchPerfect(final RegisteredFontFamily family,
final boolean considerSimulated, final FontStyle style,
- final FontWeight weight, final Font.Variant variant,
- final Font.Stretch stretch, final boolean freeStandingFonts,
+ final FontWeight weight, final FontVariant variant,
+ final FontStretch stretch, final boolean freeStandingFonts,
final boolean systemFonts) {
if (! generalTypeMatches(freeStandingFonts, systemFonts)) {
return false;
@@ -455,7 +450,7 @@
*/
public boolean matchIgnoreWeight(final RegisteredFontFamily family,
final boolean considerSimulated, final FontStyle style,
- final Font.Variant variant, final Font.Stretch stretch,
+ final FontVariant variant, final FontStretch stretch,
final boolean freeStandingFonts, final boolean systemFonts) {
if (! generalTypeMatches(freeStandingFonts, systemFonts)) {
return false;
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -30,9 +30,10 @@
import org.foray.font.FontServer4a;
-import org.axsl.font.Font;
import org.axsl.font.FontException;
+import org.axsl.value.FontStretch;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontVariant;
import org.axsl.value.FontWeight;
import java.util.ArrayList;
@@ -98,10 +99,10 @@
throw new FontException(FontWeight.class.getName() + " is required.");
}
if (font.getFontVariant() == null) {
- throw new FontException(Font.Variant.class.getName() + " is required.");
+ throw new FontException(FontVariant.class.getName() + " is required.");
}
if (font.getFontStretch() == null) {
- throw new FontException(Font.Stretch.class.getName() + " is required.");
+ throw new FontException(FontStretch.class.getName() + " is required.");
}
/* Check for match with fonts already registered. */
@@ -134,8 +135,8 @@
* or null if none match.
*/
public RegisteredFont findRegisteredFontDesc(final FontStyle style,
- final FontWeight weight, final Font.Variant variant,
- final Font.Stretch stretch, final boolean freeStandingFonts,
+ final FontWeight weight, final FontVariant variant,
+ final FontStretch stretch, final boolean freeStandingFonts,
final boolean systemFonts) {
/* According to the CSS2 Recommendation, Section 15.5, weight will never
* cause the failure of a font-family to select a font.
Modified: trunk/foray/foray-font-tf/build.gradle
===================================================================
--- trunk/foray/foray-font-tf/build.gradle 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font-tf/build.gradle 2025-01-10 04:10:45 UTC (rev 13349)
@@ -10,6 +10,8 @@
api (group: 'org.axsl', name: 'axsl-orthography', version: versions.axsl)
implementation (group: 'org.axsl', name: 'axsl-constants', version: versions.axsl)
api (group: 'org.axsl', name: 'axsl-primitive', version: versions.axsl)
+ api (group: 'org.axsl', name: 'axsl-value', version: versions.axsl)
+
api (project(':foray-ps-data'))
}
Modified: trunk/foray/foray-font-tf/src/main/java/org/foray/font/fixture/MockFontUse.java
===================================================================
--- trunk/foray/foray-font-tf/src/main/java/org/foray/font/fixture/MockFontUse.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-font-tf/src/main/java/org/foray/font/fixture/MockFontUse.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -29,7 +29,6 @@
package org.foray.font.fixture;
import org.axsl.font.Font;
-import org.axsl.font.Font.Stretch;
import org.axsl.font.FontConsumer;
import org.axsl.font.FontContext;
import org.axsl.font.FontUse;
@@ -38,6 +37,7 @@
import org.axsl.primitive.sequence.IntSequence;
import org.axsl.primitive.sequence.ShortSequence;
import org.axsl.ps.Encoding;
+import org.axsl.value.FontStretch;
import java.math.BigDecimal;
@@ -138,7 +138,7 @@
}
@Override
- public BigDecimal simulateStretch(final Stretch stretch) {
+ public BigDecimal simulateStretch(final FontStretch stretch) {
return null;
}
Modified: trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java
===================================================================
--- trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -34,13 +34,15 @@
package org.foray.graphic.batik;
import org.axsl.constants.TypographicConstants;
-import org.axsl.font.Font;
import org.axsl.font.FontConsumer;
import org.axsl.font.FontContext;
import org.axsl.font.FontException;
import org.axsl.font.FontUtility;
import org.axsl.orthography.Orthography;
+import org.axsl.value.FontSelectionStrategy;
+import org.axsl.value.FontStretch;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontVariant;
import org.axsl.value.FontWeight;
import org.apache.batik.bridge.Mark;
@@ -331,8 +333,8 @@
this.fontFamily = fam.getFamilyName();
final org.axsl.font.FontUse font = this.fontConsumer.selectFontCss(
FontUtility.foFontFamily(this.fontFamily),
- style, weight, Font.Variant.NORMAL,
- org.axsl.font.Font.Stretch.NORMAL,
+ style, weight, FontVariant.NORMAL,
+ FontStretch.NORMAL,
fsize * TypographicConstants.MILLIPOINTS_PER_POINT,
' ');
if (font != null) {
@@ -348,12 +350,12 @@
}
this.fontFamily = "any";
return this.fontConsumer.selectFontXsl(
- Font.SelectionStrategy.AUTO,
+ FontSelectionStrategy.AUTO,
Arrays.asList(new String[] {"any"}),
style,
weight,
- Font.Variant.NORMAL,
- org.axsl.font.Font.Stretch.NORMAL,
+ FontVariant.NORMAL,
+ FontStretch.NORMAL,
fsize * TypographicConstants.MILLIPOINTS_PER_POINT,
' ');
}
Modified: trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java
===================================================================
--- trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -51,7 +51,10 @@
import org.axsl.pdf.PdfColor;
import org.axsl.pdf.PdfPage;
import org.axsl.unicode.block.U0000_Basic_Latin;
+import org.axsl.value.FontSelectionStrategy;
+import org.axsl.value.FontStretch;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontVariant;
import org.axsl.value.FontWeight;
import org.apache.batik.ext.awt.g2d.GraphicContext;
@@ -713,11 +716,11 @@
fontWeight = FontWeight.BOLD;
}
FontUse fontUse = this.fontConsumer.selectFontXsl(
- org.axsl.font.Font.SelectionStrategy.AUTO,
+ FontSelectionStrategy.AUTO,
FontUtility.foFontFamily(fontFamily),
fontStyle, fontWeight,
- org.axsl.font.Font.Variant.NORMAL,
- org.axsl.font.Font.Stretch.NORMAL,
+ FontVariant.NORMAL,
+ FontStretch.NORMAL,
(int) (fontSize * TypographicConstants.MILLIPOINTS_PER_POINT),
' ');
if (fontUse == null) {
@@ -756,8 +759,8 @@
FontUse font = this.fontConsumer.selectFontCss(fontFamily,
FontStyle.NORMAL,
FontWeight.NORMAL,
- org.axsl.font.Font.Variant.NORMAL,
- org.axsl.font.Font.Stretch.NORMAL, 0, ch);
+ FontVariant.NORMAL,
+ FontStretch.NORMAL, 0, ch);
if (font == null) {
font = this.fontConsumer.selectFontFallback();
}
Modified: trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java
===================================================================
--- trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java 2025-01-10 01:11:25 UTC (rev 13348)
+++ trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java 2025-01-10 04:10:45 UTC (rev 13349)
@@ -44,7 +44,6 @@
import org.foray.primitive.sequence.ByteArrayBuilder;
import org.foray.ps.encode.EncodingStandard;
-import org.axsl.font.Font;
import org.axsl.font.FontContext;
import org.axsl.font.FontException;
import org.axsl.font.FontFeatureSimulation;
@@ -54,7 +53,9 @@
import org.axsl.pdf.PdfSerializationConfig;
import org.axsl.pdf.PdfVersion;
import org.axsl.ps.PsServer;
+import org.axsl.value.FontStretch;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontVariant;
import org.axsl.value.FontWeight;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -100,7 +101,7 @@
final FreeStandingFont font = rf.getFreeStandingFont();
final RegisteredFont rfd = new RegisteredFont(rf, rff,
rf.getFreeStandingFont().getInternalEncoding(), FontStyle.NORMAL, FontWeight.NORMAL,
- Font.Variant.NORMAL, Font.Stretch.NORMAL, FontFeatureSimulation.DEFAULT);
+ FontVariant.NORMAL, FontStretch.NORMAL, FontFeatureSimulation.DEFAULT);
final ConsumerFont4a consumerFont = new ConsumerFont4a(font, fontConsumer);
final FontUse fontUse = new FontUse4a(consumerFont, rfd, EncodingStandard.getInstance());
final PdfFont pdfFont = doc.getPdfFont(fontUse);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-01-10 01:11:29
|
Revision: 13348
http://sourceforge.net/p/foray/code/13348
Author: victormote
Date: 2025-01-10 01:11:25 +0000 (Fri, 10 Jan 2025)
Log Message:
-----------
Conform to axsl change: Remove org.axsl.font.Font.Weight in favor of org.axsl.value.FontWeight.
Modified Paths:
--------------
trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfigGenerator.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfiguredFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java
trunk/foray/foray-font/src/main/java/org/foray/font/format/type1/Type1MetricsParserAfm.java
trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/prop/PdFontWeight.java
trunk/foray/foray-fotree/src/test/java/org/foray/fotree/fo/prop/FontWeightTests.java
trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java
trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java
trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java
Modified: trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java
===================================================================
--- trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -1245,8 +1245,8 @@
/* Resolve the FO Tree values. */
final FontSelectionStrategy foStrategy = foNeedingFont.traitFontSelectionStrategy(this);
final List<String> foFontFamily = foNeedingFont.traitFontFamily(this);
- final FontStyle foStyle = foNeedingFont.traitFontStyle(this);
- final FontWeight foWeight = foNeedingFont.traitFontWeight(this);
+ final FontStyle fontStyle = foNeedingFont.traitFontStyle(this);
+ final FontWeight fontWeight = foNeedingFont.traitFontWeight(this);
final FontVariant foVariant = foNeedingFont.traitFontVariant(this);
final FontStretch foStretch = foNeedingFont.traitFontStretch(this);
final int foFontSize = foNeedingFont.traitFontSize(this);
@@ -1253,8 +1253,6 @@
/* Convert the FO Tree values to Font values. */
final Font.SelectionStrategy fontSelectionStrategy = AreaTree.fontSelectionStrategyFromFo(foStrategy);
- final FontStyle fontStyle = foStyle;
- final Font.Weight fontWeight = AreaTree.fontWeightFromFo(foWeight);
final Font.Variant fontVariant = AreaTree.fontVariantFromFo(foVariant);
final Font.Stretch fontStretch = AreaTree.fontStretchFromFo(foStretch);
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -42,6 +42,7 @@
import org.axsl.font.zzz.FontSelectionConstraintsMdo;
import org.axsl.ps.Encoding;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -226,7 +227,7 @@
public org.axsl.font.FontUse selectFontXsl(
final Font.SelectionStrategy selectionStrategy,
final List<String> familyList, final FontStyle style,
- final Font.Weight weight, final Font.Variant variant,
+ final FontWeight weight, final Font.Variant variant,
final Font.Stretch stretch, final int size, final int codePoint) {
final FontSelector selector = getFontSelector(selectionStrategy);
final RegisteredFont fontDescSelected = selector.selectFont(familyList, style, weight, variant, stretch, size,
@@ -427,7 +428,7 @@
@Override
public org.axsl.font.FontUse selectFontCss(final List<String> familyList,
- final FontStyle style, final Font.Weight weight,
+ final FontStyle style, final FontWeight weight,
final Font.Variant variant, final Font.Stretch stretch,
final int size, final int codePoint) {
return selectFontXsl(Font.SelectionStrategy.CHARACTER_BY_CHARACTER,
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -32,6 +32,7 @@
import org.axsl.font.Font;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
import java.util.List;
@@ -64,7 +65,7 @@
* @param codePoint The Unicode code point which must be encodable by the selected font.
* @return The best registered font description matching the selection criteria.
*/
- public abstract RegisteredFont selectFont(List<String> familyList, FontStyle style, Font.Weight weight,
+ public abstract RegisteredFont selectFont(List<String> familyList, FontStyle style, FontWeight weight,
Font.Variant variant, Font.Stretch stretch, int size, int codePoint);
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -34,6 +34,7 @@
import org.axsl.font.Font;
import org.axsl.font.FontSelectionConstraints;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
import java.util.List;
@@ -58,7 +59,7 @@
}
@Override
- public RegisteredFont selectFont(final List<String> familyList, final FontStyle style, final Font.Weight weight,
+ public RegisteredFont selectFont(final List<String> familyList, final FontStyle style, final FontWeight weight,
final Font.Variant variant, final Font.Stretch stretch, final int size, final int codePoint) {
Font4a fontSelected = null;
RegisteredFont fontDescSelected = null;
@@ -96,7 +97,7 @@
* This is used only for bitmapped fonts.
* @return The {@link RegisteredFont} matching the selection criteria, or null if there is none.
*/
- private RegisteredFont selectFont(final String familyToTry, final FontStyle style, final Font.Weight weight,
+ private RegisteredFont selectFont(final String familyToTry, final FontStyle style, final FontWeight weight,
final Font.Variant variant, final Font.Stretch stretch, final int size) {
if (familyToTry == null) {
return null;
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -47,6 +47,7 @@
import org.axsl.ps.Encoding;
import org.axsl.ps.PsServer;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
import org.apache.commons.discovery.tools.DiscoverSingleton;
import org.slf4j.Logger;
@@ -240,7 +241,7 @@
final RegisteredFontContent rf = new RegisteredFontContent(this, null, null, null, null, null, "serif");
final RegisteredFontFamily rff = this.registerFontFamily2("serif");
final RegisteredFont font = new RegisteredFont(rf, rff, null, FontStyle.NORMAL,
- org.axsl.font.Font.Weight.NORMAL, org.axsl.font.Font.Variant.NORMAL,
+ FontWeight.NORMAL, org.axsl.font.Font.Variant.NORMAL,
org.axsl.font.Font.Stretch.NORMAL, FontFeatureSimulation.DEFAULT);
rff.registerFont(font);
} catch (final FontException e) {
@@ -264,7 +265,7 @@
/* Try to find one with normal characteristics. */
defaultFont = rff.findRegisteredFontDesc(
FontStyle.NORMAL,
- org.axsl.font.Font.Weight.NORMAL,
+ FontWeight.NORMAL,
org.axsl.font.Font.Variant.NORMAL,
org.axsl.font.Font.Stretch.NORMAL,
freeStandingFont,
@@ -275,7 +276,7 @@
/* Try to find one with regardless of characteristics. */
defaultFont = rff.findRegisteredFontDesc(
FontStyle.NORMAL,
- org.axsl.font.Font.Weight.ANY,
+ FontWeight.NORMAL,
org.axsl.font.Font.Variant.ANY,
org.axsl.font.Font.Stretch.ANY,
freeStandingFont,
@@ -287,7 +288,7 @@
for (RegisteredFontFamily currentRff : this.fontFamilies.values()) {
defaultFont = currentRff.findRegisteredFontDesc(
FontStyle.NORMAL,
- org.axsl.font.Font.Weight.ANY,
+ FontWeight.NORMAL,
org.axsl.font.Font.Variant.ANY,
org.axsl.font.Font.Stretch.ANY,
freeStandingFont,
@@ -469,19 +470,10 @@
if (rff.getFontDescriptions().size() > 0) {
return;
}
- registerBase14Description("Base14-Courier", "Base14-Courier",
- FontStyle.NORMAL,
- org.axsl.font.Font.Weight.NORMAL);
- registerBase14Description("Base14-Courier", "Base14-Courier-Oblique",
- FontStyle.OBLIQUE,
- org.axsl.font.Font.Weight.NORMAL);
- registerBase14Description("Base14-Courier", "Base14-Courier-Bold",
- FontStyle.NORMAL,
- org.axsl.font.Font.Weight.BOLD);
- registerBase14Description("Base14-Courier",
- "Base14-Courier-BoldOblique",
- FontStyle.OBLIQUE,
- org.axsl.font.Font.Weight.BOLD);
+ registerBase14Description("Base14-Courier", "Base14-Courier", FontStyle.NORMAL, FontWeight.NORMAL);
+ registerBase14Description("Base14-Courier", "Base14-Courier-Oblique", FontStyle.OBLIQUE, FontWeight.NORMAL);
+ registerBase14Description("Base14-Courier", "Base14-Courier-Bold", FontStyle.NORMAL, FontWeight.BOLD);
+ registerBase14Description("Base14-Courier", "Base14-Courier-BoldOblique", FontStyle.OBLIQUE, FontWeight.BOLD);
}
/**
@@ -494,20 +486,11 @@
if (rff.getFontDescriptions().size() > 0) {
return;
}
- registerBase14Description("Base14-Helvetica", "Base14-Helvetica",
- FontStyle.NORMAL,
- org.axsl.font.Font.Weight.NORMAL);
- registerBase14Description("Base14-Helvetica",
- "Base14-Helvetica-Oblique",
- FontStyle.OBLIQUE,
- org.axsl.font.Font.Weight.NORMAL);
- registerBase14Description("Base14-Helvetica", "Base14-Helvetica-Bold",
- FontStyle.NORMAL,
- org.axsl.font.Font.Weight.BOLD);
- registerBase14Description("Base14-Helvetica",
- "Base14-Helvetica-BoldOblique",
- FontStyle.OBLIQUE,
- org.axsl.font.Font.Weight.BOLD);
+ registerBase14Description("Base14-Helvetica", "Base14-Helvetica", FontStyle.NORMAL, FontWeight.NORMAL);
+ registerBase14Description("Base14-Helvetica", "Base14-Helvetica-Oblique", FontStyle.OBLIQUE, FontWeight.NORMAL);
+ registerBase14Description("Base14-Helvetica", "Base14-Helvetica-Bold", FontStyle.NORMAL, FontWeight.BOLD);
+ registerBase14Description("Base14-Helvetica", "Base14-Helvetica-BoldOblique", FontStyle.OBLIQUE,
+ FontWeight.BOLD);
}
/**
@@ -520,18 +503,10 @@
if (rff.getFontDescriptions().size() > 0) {
return;
}
- registerBase14Description("Base14-Times", "Base14-Times",
- FontStyle.NORMAL,
- org.axsl.font.Font.Weight.NORMAL);
- registerBase14Description("Base14-Times", "Base14-Times-Italic",
- FontStyle.ITALIC,
- org.axsl.font.Font.Weight.NORMAL);
- registerBase14Description("Base14-Times", "Base14-Times-Bold",
- FontStyle.NORMAL,
- org.axsl.font.Font.Weight.BOLD);
- registerBase14Description("Base14-Times", "Base14-Times-BoldItalic",
- FontStyle.ITALIC,
- org.axsl.font.Font.Weight.BOLD);
+ registerBase14Description("Base14-Times", "Base14-Times", FontStyle.NORMAL, FontWeight.NORMAL);
+ registerBase14Description("Base14-Times", "Base14-Times-Italic", FontStyle.ITALIC, FontWeight.NORMAL);
+ registerBase14Description("Base14-Times", "Base14-Times-Bold", FontStyle.NORMAL, FontWeight.BOLD);
+ registerBase14Description("Base14-Times", "Base14-Times-BoldItalic", FontStyle.ITALIC, FontWeight.BOLD);
}
/**
@@ -544,9 +519,7 @@
if (rff.getFontDescriptions().size() > 0) {
return;
}
- registerBase14Description("Base14-Symbol", "Base14-Symbol",
- FontStyle.NORMAL,
- org.axsl.font.Font.Weight.NORMAL);
+ registerBase14Description("Base14-Symbol", "Base14-Symbol", FontStyle.NORMAL, FontWeight.NORMAL);
}
/**
@@ -559,9 +532,7 @@
if (rff.getFontDescriptions().size() > 0) {
return;
}
- registerBase14Description("Base14-ZapfDingbats", "Base14-ZapfDingbats",
- FontStyle.NORMAL,
- org.axsl.font.Font.Weight.NORMAL);
+ registerBase14Description("Base14-ZapfDingbats", "Base14-ZapfDingbats", FontStyle.NORMAL, FontWeight.NORMAL);
}
/**
@@ -573,9 +544,8 @@
* @param weight The weight of the font (100, 200, normal, bold, etc.).
* @throws FontException For errors during registration.
*/
- private void registerBase14Description(final String fontFamily,
- final String fontName, final FontStyle style,
- final org.axsl.font.Font.Weight weight) throws FontException {
+ private void registerBase14Description(final String fontFamily, final String fontName, final FontStyle style,
+ final FontWeight weight) throws FontException {
Encoding encoding = EncodingWinAnsi.getInstance();
if (fontFamily.equals("Base14-Symbol")) {
encoding = EncodingSymbol.getInstance();
@@ -647,10 +617,9 @@
if (awtFont.isItalic()) {
fontStyle = FontStyle.ITALIC;
}
- org.axsl.font.Font.Weight fontWeight
- = org.axsl.font.Font.Weight.NORMAL;
+ FontWeight fontWeight = FontWeight.NORMAL;
if (awtFont.isBold()) {
- fontWeight = org.axsl.font.Font.Weight.BOLD;
+ fontWeight = FontWeight.BOLD;
}
final org.axsl.font.Font.Variant fontVariant = org.axsl.font.Font.Variant.NORMAL;
final org.axsl.font.Font.Stretch fontStretch = org.axsl.font.Font.Stretch.NORMAL;
@@ -1003,7 +972,7 @@
public void registerFontDescription(final String fontFamily,
final String fontID, final Encoding encoding,
final FontStyle style,
- final org.axsl.font.Font.Weight weight,
+ final FontWeight weight,
final org.axsl.font.Font.Variant variant,
final org.axsl.font.Font.Stretch stretch,
final FontFeatureSimulation simulation)
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfigGenerator.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfigGenerator.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfigGenerator.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -35,9 +35,9 @@
import org.foray.font.format.ttf.TrueTypeFont;
import org.foray.font.format.type1.Type1Font;
-import org.axsl.font.Font;
import org.axsl.font.FontException;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
import org.apache.commons.io.IOCase;
import org.apache.commons.io.filefilter.WildcardFileFilter;
@@ -156,7 +156,7 @@
final Element fontElement = document.createElement("font");
final FontStyle style = configFile.getStyle();
fontElement.setAttribute("style", style.getName());
- final Font.Weight weight = configFile.getWeight();
+ final FontWeight weight = configFile.getWeight();
fontElement.setAttribute("weight", weight.getName());
fontContentElement.appendChild(fontElement);
}
@@ -410,15 +410,15 @@
* @param fontName The font name to be tested.
* @return The best guess as to the font's style.
*/
- private Font.Weight getWeight(final String fontName) {
+ private FontWeight getWeight(final String fontName) {
final String normalizedName = fontName.toUpperCase();
if (normalizedName.contains("BOLD")) {
- return Font.Weight.BOLD;
+ return FontWeight.BOLD;
}
if (normalizedName.contains("BLACK")) {
- return Font.Weight.BLACK;
+ return FontWeight.BLACK;
}
- return Font.Weight.NORMAL;
+ return FontWeight.NORMAL;
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfiguredFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfiguredFont.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfiguredFont.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -30,8 +30,8 @@
import org.foray.primitive.StringUtils;
-import org.axsl.font.Font;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
/**
* Collector of information needed in order to register a font.
@@ -56,7 +56,7 @@
private String fontUrl;
/** The weight of this font. */
- private Font.Weight weight;
+ private FontWeight weight;
/** The style of this font. */
private FontStyle style;
@@ -146,7 +146,7 @@
* Returns the weight of this font.
* @return The weight of this font.
*/
- protected Font.Weight getWeight() {
+ protected FontWeight getWeight() {
return this.weight;
}
@@ -154,7 +154,7 @@
* Sets the weight of this font.
* @param weight The new weight.
*/
- protected void setWeight(final Font.Weight weight) {
+ protected void setWeight(final FontWeight weight) {
this.weight = weight;
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -41,6 +41,7 @@
import org.axsl.ps.PsEncoding;
import org.axsl.ps.PsException;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
@@ -430,7 +431,7 @@
final RegisteredFontContent content = this.fontServer.getRegisteredFont(contentString);
final FontStyle style = FontStyle.parseFo(styleString);
- final Font.Weight weight = Font.Weight.fromName(weightString);
+ final FontWeight weight = FontWeight.parseFo(weightString);
final Font.Variant variant = Font.Variant.fromName(variantString);
final Font.Stretch stretch = Font.Stretch.fromName(stretchString);
// final float simulateOblique = Float.parseFloat(simulateObliqueString);
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -32,6 +32,7 @@
import org.axsl.font.FontFeatureSimulation;
import org.axsl.ps.Encoding;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
/**
* <p>Binds a set of user font-selection criteria to a {@link RegisteredFontContent} instance, as configured in the
@@ -91,7 +92,7 @@
private FontStyle fontStyle;
/** The weight of this description. */
- private Font.Weight fontWeight;
+ private FontWeight fontWeight;
/** The variant value of this description. */
private Font.Variant fontVariant;
@@ -114,7 +115,7 @@
* @param simulation The font features to be simulated if not natively present.
*/
public RegisteredFont(final RegisteredFontContent rf, final RegisteredFontFamily rff, final Encoding encoding,
- final FontStyle fontStyle, final Font.Weight fontWeight, final Font.Variant fontVariant,
+ final FontStyle fontStyle, final FontWeight fontWeight, final Font.Variant fontVariant,
final Font.Stretch fontStretch, final FontFeatureSimulation simulation) {
this.registeredFont = rf;
this.registeredFontFamily = rff;
@@ -173,7 +174,7 @@
* Returns the font weight.
* @return The font weight.
*/
- public Font.Weight getFontWeight() {
+ public FontWeight getFontWeight() {
return this.fontWeight;
}
@@ -393,11 +394,8 @@
* @param desiredWeight The weight to match.
* @return True if and only if the style of this font description matches the criteria.
*/
- public boolean weightMatches(final Font.Weight desiredWeight) {
- if (desiredWeight == Font.Weight.ANY) {
- return true;
- }
- final Font.Weight actualWeight = getFontWeight();
+ public boolean weightMatches(final FontWeight desiredWeight) {
+ final FontWeight actualWeight = getFontWeight();
if (actualWeight == desiredWeight) {
return true;
}
@@ -423,7 +421,7 @@
*/
public boolean matchPerfect(final RegisteredFontFamily family,
final boolean considerSimulated, final FontStyle style,
- final Font.Weight weight, final Font.Variant variant,
+ final FontWeight weight, final Font.Variant variant,
final Font.Stretch stretch, final boolean freeStandingFonts,
final boolean systemFonts) {
if (! generalTypeMatches(freeStandingFonts, systemFonts)) {
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -33,6 +33,7 @@
import org.axsl.font.Font;
import org.axsl.font.FontException;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
import java.util.ArrayList;
import java.util.List;
@@ -94,7 +95,7 @@
throw new FontException(FontStyle.class.getName() + " is required.");
}
if (font.getFontWeight() == null) {
- throw new FontException(Font.Weight.class.getName() + " is required.");
+ throw new FontException(FontWeight.class.getName() + " is required.");
}
if (font.getFontVariant() == null) {
throw new FontException(Font.Variant.class.getName() + " is required.");
@@ -133,7 +134,7 @@
* or null if none match.
*/
public RegisteredFont findRegisteredFontDesc(final FontStyle style,
- final Font.Weight weight, final Font.Variant variant,
+ final FontWeight weight, final Font.Variant variant,
final Font.Stretch stretch, final boolean freeStandingFonts,
final boolean systemFonts) {
/* According to the CSS2 Recommendation, Section 15.5, weight will never
@@ -160,14 +161,9 @@
* features. */
for (int i = 0; i < this.fontDescriptions.size(); i++) {
final RegisteredFont fd = this.fontDescriptions.get(i);
- if (fd.matchIgnoreWeight(this, false, style, variant, stretch,
- freeStandingFonts, systemFonts)) {
- if (weight == Font.Weight.ANY) {
- return fd;
- } else {
- final int index = this.weightArrayIndex(fd.getFontWeight());
- matches[index] = fd;
- }
+ if (fd.matchIgnoreWeight(this, false, style, variant, stretch, freeStandingFonts, systemFonts)) {
+ final int index = this.weightArrayIndex(fd.getFontWeight());
+ matches[index] = fd;
}
}
bestMatch = bestWeightMatch(matches, weight);
@@ -179,14 +175,9 @@
* features. */
for (int i = 0; i < this.fontDescriptions.size(); i++) {
final RegisteredFont fd = this.fontDescriptions.get(i);
- if (fd.matchPerfect(this, true, style, weight, variant, stretch,
- freeStandingFonts, systemFonts)) {
- if (weight == Font.Weight.ANY) {
- return fd;
- } else {
- final int index = this.weightArrayIndex(fd.getFontWeight());
- matches[index] = fd;
- }
+ if (fd.matchPerfect(this, true, style, weight, variant, stretch, freeStandingFonts, systemFonts)) {
+ final int index = this.weightArrayIndex(fd.getFontWeight());
+ matches[index] = fd;
}
}
bestMatch = bestWeightMatch(matches, weight);
@@ -200,10 +191,9 @@
* @param weight The requested weight value.
* @return The descriptor best matching the requested weight.
*/
- private RegisteredFont bestWeightMatch(final RegisteredFont[] matches,
- final Font.Weight weight) {
+ private RegisteredFont bestWeightMatch(final RegisteredFont[] matches, final FontWeight weight) {
final int index = weightArrayIndex(weight);
- final int normalIndex = weightArrayIndex(Font.Weight.NORMAL);
+ final int normalIndex = weightArrayIndex(FontWeight.NORMAL);
if (matches[index] != null) {
/* Perfect match. */
@@ -259,11 +249,8 @@
* @param weight The weight whose array index is needed.
* @return The 0-based array index, 0 for 100, 1 for 200, etc.
*/
- private int weightArrayIndex(final Font.Weight weight) {
+ private int weightArrayIndex(final FontWeight weight) {
/* TODO: Move this ugly little computation to axsl. */
- if (weight == Font.Weight.ANY) {
- return -1;
- }
int index = weight.getNumericWeight()
/ RegisteredFontFamily.WEIGHT_INDEX_FACTOR;
index --;
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/format/type1/Type1MetricsParserAfm.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/format/type1/Type1MetricsParserAfm.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/format/type1/Type1MetricsParserAfm.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -35,7 +35,6 @@
import org.foray.primitive.sequence.IntArrayBuilder;
import org.foray.primitive.sequence.ShortArrayBuilder;
-import org.axsl.font.Font;
import org.axsl.font.FontException;
import org.axsl.ps.BoundingBox;
import org.axsl.ps.CharSet;
@@ -42,6 +41,7 @@
import org.axsl.ps.GlyphList;
import org.axsl.ps.PsEncoding;
import org.axsl.ps.PsServer;
+import org.axsl.value.FontWeight;
import java.io.IOException;
import java.io.Serializable;
@@ -1016,13 +1016,13 @@
int dfWeight = 0;
final String weightString = this.currentTokenizer.nextToken();
if (weightString.equals("Light")) {
- dfWeight = Font.Weight.LIGHT.getNumericWeight();
+ dfWeight = FontWeight.LIGHT.getNumericWeight();
} else if (weightString.equals("Medium")) {
- dfWeight = Font.Weight.NORMAL.getNumericWeight();
+ dfWeight = FontWeight.NORMAL.getNumericWeight();
} else if (weightString.equals("Regular")) {
- dfWeight = Font.Weight.NORMAL.getNumericWeight();
+ dfWeight = FontWeight.NORMAL.getNumericWeight();
} else if (weightString.equals("Bold")) {
- dfWeight = Font.Weight.BOLD.getNumericWeight();
+ dfWeight = FontWeight.BOLD.getNumericWeight();
} else {
dfWeight = 0;
}
Modified: trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/prop/PdFontWeight.java
===================================================================
--- trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/prop/PdFontWeight.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/prop/PdFontWeight.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -130,7 +130,7 @@
* 3) find the relative font in that font-family. */
final FoObj parent = fobj.effectiveParent(context);
if (parent == null) {
- return FontWeight.N500;
+ return FontWeight.DARK;
}
final FontWeight inheritedWeight = parent.traitFontWeight(context);
return inheritedWeight.nextHeaviest();
@@ -140,7 +140,7 @@
* above. */
final FoObj parent = fobj.effectiveParent(context);
if (parent == null) {
- return FontWeight.N300;
+ return FontWeight.LIGHT;
}
final FontWeight inheritedWeight = parent.traitFontWeight(context);
return inheritedWeight.nextLightest();
Modified: trunk/foray/foray-fotree/src/test/java/org/foray/fotree/fo/prop/FontWeightTests.java
===================================================================
--- trunk/foray/foray-fotree/src/test/java/org/foray/fotree/fo/prop/FontWeightTests.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-fotree/src/test/java/org/foray/fotree/fo/prop/FontWeightTests.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -83,7 +83,7 @@
final FoObj fo = Mockito.mock(FoObj.class);
Mockito.when(fo.traitFontWeight(STD_FO_CONTEXT)).thenReturn(FontWeight.NORMAL);
final PdFontWeight out = createProperty("bolder");
- assertEquals(FontWeight.N500, out.getValue(STD_FO_CONTEXT, fo));
+ assertEquals(FontWeight.DARK, out.getValue(STD_FO_CONTEXT, fo));
}
/**
@@ -94,7 +94,7 @@
final FoObj fo = Mockito.mock(FoObj.class);
Mockito.when(fo.traitFontWeight(STD_FO_CONTEXT)).thenReturn(FontWeight.NORMAL);
final PdFontWeight out = createProperty("lighter");
- assertEquals(FontWeight.N300, out.getValue(STD_FO_CONTEXT, fo));
+ assertEquals(FontWeight.LIGHT, out.getValue(STD_FO_CONTEXT, fo));
}
/**
@@ -103,7 +103,7 @@
@Test
public void n100Test() throws PropertyException {
final PdFontWeight out = createProperty("100");
- assertEquals(FontWeight.N100, out.getValue(STD_FO_CONTEXT, null));
+ assertEquals(FontWeight.EXTREMELY_LIGHT, out.getValue(STD_FO_CONTEXT, null));
}
/**
@@ -112,7 +112,7 @@
@Test
public void n200Test() throws PropertyException {
final PdFontWeight out = createProperty("200");
- assertEquals(FontWeight.N200, out.getValue(STD_FO_CONTEXT, null));
+ assertEquals(FontWeight.VERY_LIGHT, out.getValue(STD_FO_CONTEXT, null));
}
/**
@@ -121,7 +121,7 @@
@Test
public void n300Test() throws PropertyException {
final PdFontWeight out = createProperty("300");
- assertEquals(FontWeight.N300, out.getValue(STD_FO_CONTEXT, null));
+ assertEquals(FontWeight.LIGHT, out.getValue(STD_FO_CONTEXT, null));
}
/**
@@ -130,7 +130,7 @@
@Test
public void n400Test() throws PropertyException {
final PdFontWeight out = createProperty("400");
- assertEquals(FontWeight.N400, out.getValue(STD_FO_CONTEXT, null));
+ assertEquals(FontWeight.NORMAL, out.getValue(STD_FO_CONTEXT, null));
}
/**
@@ -139,7 +139,7 @@
@Test
public void n500Test() throws PropertyException {
final PdFontWeight out = createProperty("500");
- assertEquals(FontWeight.N500, out.getValue(STD_FO_CONTEXT, null));
+ assertEquals(FontWeight.DARK, out.getValue(STD_FO_CONTEXT, null));
}
/**
@@ -148,7 +148,7 @@
@Test
public void n600Test() throws PropertyException {
final PdFontWeight out = createProperty("600");
- assertEquals(FontWeight.N600, out.getValue(STD_FO_CONTEXT, null));
+ assertEquals(FontWeight.SEMI_BOLD, out.getValue(STD_FO_CONTEXT, null));
}
/**
@@ -157,7 +157,7 @@
@Test
public void n700Test() throws PropertyException {
final PdFontWeight out = createProperty("700");
- assertEquals(FontWeight.N700, out.getValue(STD_FO_CONTEXT, null));
+ assertEquals(FontWeight.BOLD, out.getValue(STD_FO_CONTEXT, null));
}
/**
@@ -166,7 +166,7 @@
@Test
public void n800Test() throws PropertyException {
final PdFontWeight out = createProperty("800");
- assertEquals(FontWeight.N800, out.getValue(STD_FO_CONTEXT, null));
+ assertEquals(FontWeight.EXTRA_BOLD, out.getValue(STD_FO_CONTEXT, null));
}
/**
@@ -175,7 +175,7 @@
@Test
public void n900Test() throws PropertyException {
final PdFontWeight out = createProperty("900");
- assertEquals(FontWeight.N900, out.getValue(STD_FO_CONTEXT, null));
+ assertEquals(FontWeight.BLACK, out.getValue(STD_FO_CONTEXT, null));
}
/**
@@ -184,11 +184,11 @@
@Test
public void inheritTest() throws PropertyException {
final FoObj parent = Mockito.mock(FoObj.class);
- Mockito.when(parent.traitFontWeight(STD_FO_CONTEXT)).thenReturn(FontWeight.N900);
+ Mockito.when(parent.traitFontWeight(STD_FO_CONTEXT)).thenReturn(FontWeight.BLACK);
final FoObj fo = Mockito.mock(FoObj.class);
Mockito.when(fo.effectiveParent(any())).thenReturn(parent);
final PdFontWeight out = createProperty("inherit");
- assertEquals(FontWeight.N900, out.getValue(STD_FO_CONTEXT, fo));
+ assertEquals(FontWeight.BLACK, out.getValue(STD_FO_CONTEXT, fo));
}
}
Modified: trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java
===================================================================
--- trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -41,6 +41,7 @@
import org.axsl.font.FontUtility;
import org.axsl.orthography.Orthography;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
import org.apache.batik.bridge.Mark;
import org.apache.batik.bridge.StrokingTextPainter;
@@ -316,10 +317,9 @@
if (italic) {
style = FontStyle.ITALIC;
}
- org.axsl.font.Font.Weight weight
- = org.axsl.font.Font.Weight.NORMAL;
+ FontWeight weight = FontWeight.NORMAL;
if (bold) {
- weight = org.axsl.font.Font.Weight.BOLD;
+ weight = FontWeight.BOLD;
}
final List<?> gvtFonts = (List<?>) aci.getAttribute(
GVTAttributedCharacterIterator.TextAttribute.GVT_FONT_FAMILIES);
Modified: trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java
===================================================================
--- trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -52,6 +52,7 @@
import org.axsl.pdf.PdfPage;
import org.axsl.unicode.block.U0000_Basic_Latin;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
import org.apache.batik.ext.awt.g2d.GraphicContext;
import org.slf4j.LoggerFactory;
@@ -707,10 +708,9 @@
if (gFont.isItalic()) {
fontStyle = FontStyle.ITALIC;
}
- org.axsl.font.Font.Weight fontWeight
- = org.axsl.font.Font.Weight.NORMAL;
+ FontWeight fontWeight = FontWeight.NORMAL;
if (gFont.isBold()) {
- fontWeight = org.axsl.font.Font.Weight.BOLD;
+ fontWeight = FontWeight.BOLD;
}
FontUse fontUse = this.fontConsumer.selectFontXsl(
org.axsl.font.Font.SelectionStrategy.AUTO,
@@ -755,7 +755,7 @@
TextAttribute.FAMILY);
FontUse font = this.fontConsumer.selectFontCss(fontFamily,
FontStyle.NORMAL,
- org.axsl.font.Font.Weight.NORMAL,
+ FontWeight.NORMAL,
org.axsl.font.Font.Variant.NORMAL,
org.axsl.font.Font.Stretch.NORMAL, 0, ch);
if (font == null) {
Modified: trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java
===================================================================
--- trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java 2025-01-09 23:20:05 UTC (rev 13347)
+++ trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java 2025-01-10 01:11:25 UTC (rev 13348)
@@ -55,6 +55,7 @@
import org.axsl.pdf.PdfVersion;
import org.axsl.ps.PsServer;
import org.axsl.value.FontStyle;
+import org.axsl.value.FontWeight;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
@@ -98,7 +99,7 @@
final RegisteredFontFamily rff = fontServer.getRegisteredFontFamily("Base14-Helvetica");
final FreeStandingFont font = rf.getFreeStandingFont();
final RegisteredFont rfd = new RegisteredFont(rf, rff,
- rf.getFreeStandingFont().getInternalEncoding(), FontStyle.NORMAL, Font.Weight.NORMAL,
+ rf.getFreeStandingFont().getInternalEncoding(), FontStyle.NORMAL, FontWeight.NORMAL,
Font.Variant.NORMAL, Font.Stretch.NORMAL, FontFeatureSimulation.DEFAULT);
final ConsumerFont4a consumerFont = new ConsumerFont4a(font, fontConsumer);
final FontUse fontUse = new FontUse4a(consumerFont, rfd, EncodingStandard.getInstance());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2025-01-09 23:20:07
|
Revision: 13347
http://sourceforge.net/p/foray/code/13347
Author: victormote
Date: 2025-01-09 23:20:05 +0000 (Thu, 09 Jan 2025)
Log Message:
-----------
Conform to axsl change: Remove org.axsl.font.Font.Style in favor of org.axsl.value.FontStyle.
Modified Paths:
--------------
trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java
trunk/foray/foray-font/build.gradle
trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java
trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfigGenerator.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfiguredFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java
trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java
trunk/foray/foray-graphic/build.gradle
trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java
trunk/foray/foray-pdf/build.gradle
trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java
trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java
Modified: trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java
===================================================================
--- trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-areatree/src/main/java/org/foray/area/Area4a.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -1253,7 +1253,7 @@
/* Convert the FO Tree values to Font values. */
final Font.SelectionStrategy fontSelectionStrategy = AreaTree.fontSelectionStrategyFromFo(foStrategy);
- final Font.Style fontStyle = AreaTree.fontStyleFromFo(foStyle);
+ final FontStyle fontStyle = foStyle;
final Font.Weight fontWeight = AreaTree.fontWeightFromFo(foWeight);
final Font.Variant fontVariant = AreaTree.fontVariantFromFo(foVariant);
final Font.Stretch fontStretch = AreaTree.fontStretchFromFo(foStretch);
Modified: trunk/foray/foray-font/build.gradle
===================================================================
--- trunk/foray/foray-font/build.gradle 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-font/build.gradle 2025-01-09 23:20:05 UTC (rev 13347)
@@ -17,6 +17,7 @@
api (group: 'org.axsl', name: 'axsl-ps', version: versions.axsl)
api (group: 'org.axsl', name: 'axsl-orthography', version: versions.axsl)
implementation (group: 'org.axsl', name: 'axsl-constants', version: versions.axsl)
+ api (group: 'org.axsl', name: 'axsl-value', version: versions.axsl)
api (project(':foray-common'))
implementation (project(':foray-primitive'))
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontConsumer4a.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -41,6 +41,7 @@
import org.axsl.font.Panose;
import org.axsl.font.zzz.FontSelectionConstraintsMdo;
import org.axsl.ps.Encoding;
+import org.axsl.value.FontStyle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -224,7 +225,7 @@
@Override
public org.axsl.font.FontUse selectFontXsl(
final Font.SelectionStrategy selectionStrategy,
- final List<String> familyList, final Font.Style style,
+ final List<String> familyList, final FontStyle style,
final Font.Weight weight, final Font.Variant variant,
final Font.Stretch stretch, final int size, final int codePoint) {
final FontSelector selector = getFontSelector(selectionStrategy);
@@ -426,7 +427,7 @@
@Override
public org.axsl.font.FontUse selectFontCss(final List<String> familyList,
- final Font.Style style, final Font.Weight weight,
+ final FontStyle style, final Font.Weight weight,
final Font.Variant variant, final Font.Stretch stretch,
final int size, final int codePoint) {
return selectFontXsl(Font.SelectionStrategy.CHARACTER_BY_CHARACTER,
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontSelector.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -31,6 +31,7 @@
import org.foray.font.config.RegisteredFont;
import org.axsl.font.Font;
+import org.axsl.value.FontStyle;
import java.util.List;
@@ -63,7 +64,7 @@
* @param codePoint The Unicode code point which must be encodable by the selected font.
* @return The best registered font description matching the selection criteria.
*/
- public abstract RegisteredFont selectFont(List<String> familyList, Font.Style style, Font.Weight weight,
+ public abstract RegisteredFont selectFont(List<String> familyList, FontStyle style, Font.Weight weight,
Font.Variant variant, Font.Stretch stretch, int size, int codePoint);
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontSelectorCbc.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -33,6 +33,7 @@
import org.axsl.font.Font;
import org.axsl.font.FontSelectionConstraints;
+import org.axsl.value.FontStyle;
import java.util.List;
@@ -57,7 +58,7 @@
}
@Override
- public RegisteredFont selectFont(final List<String> familyList, final Font.Style style, final Font.Weight weight,
+ public RegisteredFont selectFont(final List<String> familyList, final FontStyle style, final Font.Weight weight,
final Font.Variant variant, final Font.Stretch stretch, final int size, final int codePoint) {
Font4a fontSelected = null;
RegisteredFont fontDescSelected = null;
@@ -95,7 +96,7 @@
* This is used only for bitmapped fonts.
* @return The {@link RegisteredFont} matching the selection criteria, or null if there is none.
*/
- private RegisteredFont selectFont(final String familyToTry, final Font.Style style, final Font.Weight weight,
+ private RegisteredFont selectFont(final String familyToTry, final FontStyle style, final Font.Weight weight,
final Font.Variant variant, final Font.Stretch stretch, final int size) {
if (familyToTry == null) {
return null;
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/FontServer4a.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -46,6 +46,7 @@
import org.axsl.font.FontServer;
import org.axsl.ps.Encoding;
import org.axsl.ps.PsServer;
+import org.axsl.value.FontStyle;
import org.apache.commons.discovery.tools.DiscoverSingleton;
import org.slf4j.Logger;
@@ -238,7 +239,7 @@
try {
final RegisteredFontContent rf = new RegisteredFontContent(this, null, null, null, null, null, "serif");
final RegisteredFontFamily rff = this.registerFontFamily2("serif");
- final RegisteredFont font = new RegisteredFont(rf, rff, null, org.axsl.font.Font.Style.NORMAL,
+ final RegisteredFont font = new RegisteredFont(rf, rff, null, FontStyle.NORMAL,
org.axsl.font.Font.Weight.NORMAL, org.axsl.font.Font.Variant.NORMAL,
org.axsl.font.Font.Stretch.NORMAL, FontFeatureSimulation.DEFAULT);
rff.registerFont(font);
@@ -262,7 +263,7 @@
if (rff != null) {
/* Try to find one with normal characteristics. */
defaultFont = rff.findRegisteredFontDesc(
- org.axsl.font.Font.Style.NORMAL,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.NORMAL,
org.axsl.font.Font.Variant.NORMAL,
org.axsl.font.Font.Stretch.NORMAL,
@@ -273,7 +274,7 @@
}
/* Try to find one with regardless of characteristics. */
defaultFont = rff.findRegisteredFontDesc(
- org.axsl.font.Font.Style.ANY,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.ANY,
org.axsl.font.Font.Variant.ANY,
org.axsl.font.Font.Stretch.ANY,
@@ -285,7 +286,7 @@
}
for (RegisteredFontFamily currentRff : this.fontFamilies.values()) {
defaultFont = currentRff.findRegisteredFontDesc(
- org.axsl.font.Font.Style.ANY,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.ANY,
org.axsl.font.Font.Variant.ANY,
org.axsl.font.Font.Stretch.ANY,
@@ -469,17 +470,17 @@
return;
}
registerBase14Description("Base14-Courier", "Base14-Courier",
- org.axsl.font.Font.Style.NORMAL,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.NORMAL);
registerBase14Description("Base14-Courier", "Base14-Courier-Oblique",
- org.axsl.font.Font.Style.OBLIQUE,
+ FontStyle.OBLIQUE,
org.axsl.font.Font.Weight.NORMAL);
registerBase14Description("Base14-Courier", "Base14-Courier-Bold",
- org.axsl.font.Font.Style.NORMAL,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.BOLD);
registerBase14Description("Base14-Courier",
"Base14-Courier-BoldOblique",
- org.axsl.font.Font.Style.OBLIQUE,
+ FontStyle.OBLIQUE,
org.axsl.font.Font.Weight.BOLD);
}
@@ -494,18 +495,18 @@
return;
}
registerBase14Description("Base14-Helvetica", "Base14-Helvetica",
- org.axsl.font.Font.Style.NORMAL,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.NORMAL);
registerBase14Description("Base14-Helvetica",
"Base14-Helvetica-Oblique",
- org.axsl.font.Font.Style.OBLIQUE,
+ FontStyle.OBLIQUE,
org.axsl.font.Font.Weight.NORMAL);
registerBase14Description("Base14-Helvetica", "Base14-Helvetica-Bold",
- org.axsl.font.Font.Style.NORMAL,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.BOLD);
registerBase14Description("Base14-Helvetica",
"Base14-Helvetica-BoldOblique",
- org.axsl.font.Font.Style.OBLIQUE,
+ FontStyle.OBLIQUE,
org.axsl.font.Font.Weight.BOLD);
}
@@ -520,16 +521,16 @@
return;
}
registerBase14Description("Base14-Times", "Base14-Times",
- org.axsl.font.Font.Style.NORMAL,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.NORMAL);
registerBase14Description("Base14-Times", "Base14-Times-Italic",
- org.axsl.font.Font.Style.ITALIC,
+ FontStyle.ITALIC,
org.axsl.font.Font.Weight.NORMAL);
registerBase14Description("Base14-Times", "Base14-Times-Bold",
- org.axsl.font.Font.Style.NORMAL,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.BOLD);
registerBase14Description("Base14-Times", "Base14-Times-BoldItalic",
- org.axsl.font.Font.Style.ITALIC,
+ FontStyle.ITALIC,
org.axsl.font.Font.Weight.BOLD);
}
@@ -544,7 +545,7 @@
return;
}
registerBase14Description("Base14-Symbol", "Base14-Symbol",
- org.axsl.font.Font.Style.NORMAL,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.NORMAL);
}
@@ -559,7 +560,7 @@
return;
}
registerBase14Description("Base14-ZapfDingbats", "Base14-ZapfDingbats",
- org.axsl.font.Font.Style.NORMAL,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.NORMAL);
}
@@ -573,7 +574,7 @@
* @throws FontException For errors during registration.
*/
private void registerBase14Description(final String fontFamily,
- final String fontName, final org.axsl.font.Font.Style style,
+ final String fontName, final FontStyle style,
final org.axsl.font.Font.Weight weight) throws FontException {
Encoding encoding = EncodingWinAnsi.getInstance();
if (fontFamily.equals("Base14-Symbol")) {
@@ -642,10 +643,9 @@
this.logger.error(e.getMessage());
continue;
}
- org.axsl.font.Font.Style fontStyle
- = org.axsl.font.Font.Style.NORMAL;
+ FontStyle fontStyle = FontStyle.NORMAL;
if (awtFont.isItalic()) {
- fontStyle = org.axsl.font.Font.Style.ITALIC;
+ fontStyle = FontStyle.ITALIC;
}
org.axsl.font.Font.Weight fontWeight
= org.axsl.font.Font.Weight.NORMAL;
@@ -1002,7 +1002,7 @@
@Override
public void registerFontDescription(final String fontFamily,
final String fontID, final Encoding encoding,
- final org.axsl.font.Font.Style style,
+ final FontStyle style,
final org.axsl.font.Font.Weight weight,
final org.axsl.font.Font.Variant variant,
final org.axsl.font.Font.Stretch stretch,
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfigGenerator.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfigGenerator.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfigGenerator.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -37,6 +37,7 @@
import org.axsl.font.Font;
import org.axsl.font.FontException;
+import org.axsl.value.FontStyle;
import org.apache.commons.io.IOCase;
import org.apache.commons.io.filefilter.WildcardFileFilter;
@@ -153,7 +154,7 @@
lastFamilyElement.appendChild(fontContentElement);
final Element fontElement = document.createElement("font");
- final Font.Style style = configFile.getStyle();
+ final FontStyle style = configFile.getStyle();
fontElement.setAttribute("style", style.getName());
final Font.Weight weight = configFile.getWeight();
fontElement.setAttribute("weight", weight.getName());
@@ -390,18 +391,18 @@
* @param fontName The font name to be tested.
* @return The best guess as to the font's style.
*/
- private Font.Style getStyle(final String fontName) {
+ private FontStyle getStyle(final String fontName) {
final String normalizedName = fontName.toUpperCase();
if (normalizedName.contains("ITALIC")) {
- return Font.Style.ITALIC;
+ return FontStyle.ITALIC;
}
if (normalizedName.contains("OBLIQUE")) {
- return Font.Style.OBLIQUE;
+ return FontStyle.OBLIQUE;
}
if (normalizedName.contains("BACKSLANT")) {
- return Font.Style.BACKSLANT;
+ return FontStyle.BACKSLANT;
}
- return Font.Style.NORMAL;
+ return FontStyle.NORMAL;
}
/**
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfiguredFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfiguredFont.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/ConfiguredFont.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -31,6 +31,7 @@
import org.foray.primitive.StringUtils;
import org.axsl.font.Font;
+import org.axsl.value.FontStyle;
/**
* Collector of information needed in order to register a font.
@@ -58,7 +59,7 @@
private Font.Weight weight;
/** The style of this font. */
- private Font.Style style;
+ private FontStyle style;
/**
* Constructor.
@@ -161,7 +162,7 @@
* Returns the style of this font.
* @return The style of this font.
*/
- protected Font.Style getStyle() {
+ protected FontStyle getStyle() {
return this.style;
}
@@ -169,7 +170,7 @@
* Returns the style of this font.
* @param style The new style.
*/
- protected void setStyle(final Font.Style style) {
+ protected void setStyle(final FontStyle style) {
this.style = style;
}
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/FontConfigParser.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -40,6 +40,7 @@
import org.axsl.ps.GlyphList;
import org.axsl.ps.PsEncoding;
import org.axsl.ps.PsException;
+import org.axsl.value.FontStyle;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
@@ -428,7 +429,7 @@
final String encodingString = optional(attributes, "encoding", this.currentEncoding);
final RegisteredFontContent content = this.fontServer.getRegisteredFont(contentString);
- final Font.Style style = Font.Style.fromName(styleString);
+ final FontStyle style = FontStyle.parseFo(styleString);
final Font.Weight weight = Font.Weight.fromName(weightString);
final Font.Variant variant = Font.Variant.fromName(variantString);
final Font.Stretch stretch = Font.Stretch.fromName(stretchString);
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFont.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -31,6 +31,7 @@
import org.axsl.font.Font;
import org.axsl.font.FontFeatureSimulation;
import org.axsl.ps.Encoding;
+import org.axsl.value.FontStyle;
/**
* <p>Binds a set of user font-selection criteria to a {@link RegisteredFontContent} instance, as configured in the
@@ -87,7 +88,7 @@
private Encoding encoding;
/** The style of this description. */
- private Font.Style fontStyle;
+ private FontStyle fontStyle;
/** The weight of this description. */
private Font.Weight fontWeight;
@@ -113,7 +114,7 @@
* @param simulation The font features to be simulated if not natively present.
*/
public RegisteredFont(final RegisteredFontContent rf, final RegisteredFontFamily rff, final Encoding encoding,
- final Font.Style fontStyle, final Font.Weight fontWeight, final Font.Variant fontVariant,
+ final FontStyle fontStyle, final Font.Weight fontWeight, final Font.Variant fontVariant,
final Font.Stretch fontStretch, final FontFeatureSimulation simulation) {
this.registeredFont = rf;
this.registeredFontFamily = rff;
@@ -164,7 +165,7 @@
* Returns the font style.
* @return The font style.
*/
- public Font.Style getFontStyle() {
+ public FontStyle getFontStyle() {
return this.fontStyle;
}
@@ -299,11 +300,8 @@
* considered in the test.
* @return True if and only if the style of this font description matches the criteria.
*/
- public boolean styleMatches(final Font.Style inputDesiredStyle,
+ public boolean styleMatches(final FontStyle inputDesiredStyle,
final boolean considerSimulated) {
- if (inputDesiredStyle == Font.Style.ANY) {
- return true;
- }
if (considerSimulated) {
if (this.fontFeatureSimulation.getSimulatedOblique() != null) {
/* If it can simulate oblique, it can be used for either
@@ -311,8 +309,7 @@
switch (inputDesiredStyle) {
case NORMAL:
case ITALIC:
- case OBLIQUE:
- case ANY: {
+ case OBLIQUE: {
return true;
}
case BACKSLANT:
@@ -323,7 +320,7 @@
}
}
- Font.Style actualStyle = getFontStyle();
+ FontStyle actualStyle = getFontStyle();
/* Check the easy case first. */
if (actualStyle == inputDesiredStyle) {
return true;
@@ -330,12 +327,12 @@
}
/* If they are not equal, we need to treat "oblique" and "italic" as
* equivalent. */
- if (actualStyle == Font.Style.OBLIQUE) {
- actualStyle = Font.Style.ITALIC;
+ if (actualStyle == FontStyle.OBLIQUE) {
+ actualStyle = FontStyle.ITALIC;
}
- Font.Style desiredStyle = inputDesiredStyle;
- if (inputDesiredStyle == Font.Style.OBLIQUE) {
- desiredStyle = Font.Style.ITALIC;
+ FontStyle desiredStyle = inputDesiredStyle;
+ if (inputDesiredStyle == FontStyle.OBLIQUE) {
+ desiredStyle = FontStyle.ITALIC;
}
/* Test it again. */
if (actualStyle == desiredStyle) {
@@ -425,7 +422,7 @@
* selection criteria.
*/
public boolean matchPerfect(final RegisteredFontFamily family,
- final boolean considerSimulated, final Font.Style style,
+ final boolean considerSimulated, final FontStyle style,
final Font.Weight weight, final Font.Variant variant,
final Font.Stretch stretch, final boolean freeStandingFonts,
final boolean systemFonts) {
@@ -459,7 +456,7 @@
* selection criteria.
*/
public boolean matchIgnoreWeight(final RegisteredFontFamily family,
- final boolean considerSimulated, final Font.Style style,
+ final boolean considerSimulated, final FontStyle style,
final Font.Variant variant, final Font.Stretch stretch,
final boolean freeStandingFonts, final boolean systemFonts) {
if (! generalTypeMatches(freeStandingFonts, systemFonts)) {
Modified: trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java
===================================================================
--- trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-font/src/main/java/org/foray/font/config/RegisteredFontFamily.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -32,6 +32,7 @@
import org.axsl.font.Font;
import org.axsl.font.FontException;
+import org.axsl.value.FontStyle;
import java.util.ArrayList;
import java.util.List;
@@ -90,7 +91,7 @@
throw new FontException(RegisteredFontContent.class.getName() + " is required.");
}
if (font.getFontStyle() == null) {
- throw new FontException(Font.Style.class.getName() + " is required.");
+ throw new FontException(FontStyle.class.getName() + " is required.");
}
if (font.getFontWeight() == null) {
throw new FontException(Font.Weight.class.getName() + " is required.");
@@ -131,7 +132,7 @@
* @return The first matching RegisteredFontDesc found for this font-family,
* or null if none match.
*/
- public RegisteredFont findRegisteredFontDesc(final Font.Style style,
+ public RegisteredFont findRegisteredFontDesc(final FontStyle style,
final Font.Weight weight, final Font.Variant variant,
final Font.Stretch stretch, final boolean freeStandingFonts,
final boolean systemFonts) {
Modified: trunk/foray/foray-graphic/build.gradle
===================================================================
--- trunk/foray/foray-graphic/build.gradle 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-graphic/build.gradle 2025-01-09 23:20:05 UTC (rev 13347)
@@ -28,6 +28,7 @@
api (group: 'org.axsl', name: 'axsl-graphic', version: versions.axsl)
api (group: 'org.axsl', name: 'axsl-orthography', version: versions.axsl)
api (group: 'org.axsl', name: 'axsl-ps', version: versions.axsl)
+ api (group: 'org.axsl', name: 'axsl-value', version: versions.axsl)
api (project(':foray-common'))
implementation (project(':foray-primitive'))
Modified: trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java
===================================================================
--- trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-graphic/src/main/java/org/foray/graphic/batik/PdfTextPainter.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -40,6 +40,7 @@
import org.axsl.font.FontException;
import org.axsl.font.FontUtility;
import org.axsl.orthography.Orthography;
+import org.axsl.value.FontStyle;
import org.apache.batik.bridge.Mark;
import org.apache.batik.bridge.StrokingTextPainter;
@@ -311,9 +312,9 @@
final AttributedCharacterIterator aci, final Graphics2D g2d,
final Float size, final boolean italic, final boolean bold)
throws FontException {
- Font.Style style = Font.Style.NORMAL;
+ FontStyle style = FontStyle.NORMAL;
if (italic) {
- style = Font.Style.ITALIC;
+ style = FontStyle.ITALIC;
}
org.axsl.font.Font.Weight weight
= org.axsl.font.Font.Weight.NORMAL;
Modified: trunk/foray/foray-pdf/build.gradle
===================================================================
--- trunk/foray/foray-pdf/build.gradle 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-pdf/build.gradle 2025-01-09 23:20:05 UTC (rev 13347)
@@ -17,6 +17,7 @@
api (group: 'org.axsl', name: 'axsl-orthography', version: versions.axsl)
api (group: 'org.axsl', name: 'axsl-ps', version: versions.axsl)
implementation (group: 'org.axsl', name: 'axsl-constants', version: versions.axsl)
+ api (group: 'org.axsl', name: 'axsl-value', version: versions.axsl)
api (project(':foray-common'))
implementation (project(':foray-primitive'))
Modified: trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java
===================================================================
--- trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-pdf/src/main/java/org/foray/pdf/util/PdfGraphics2D.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -51,6 +51,7 @@
import org.axsl.pdf.PdfColor;
import org.axsl.pdf.PdfPage;
import org.axsl.unicode.block.U0000_Basic_Latin;
+import org.axsl.value.FontStyle;
import org.apache.batik.ext.awt.g2d.GraphicContext;
import org.slf4j.LoggerFactory;
@@ -702,9 +703,9 @@
fontFamily = "sans-serif";
}
final float fontSize = gFont.getSize();
- org.axsl.font.Font.Style fontStyle = org.axsl.font.Font.Style.NORMAL;
+ FontStyle fontStyle = FontStyle.NORMAL;
if (gFont.isItalic()) {
- fontStyle = org.axsl.font.Font.Style.ITALIC;
+ fontStyle = FontStyle.ITALIC;
}
org.axsl.font.Font.Weight fontWeight
= org.axsl.font.Font.Weight.NORMAL;
@@ -753,7 +754,7 @@
final Float fontSize = (Float) iterator.getAttribute(
TextAttribute.FAMILY);
FontUse font = this.fontConsumer.selectFontCss(fontFamily,
- org.axsl.font.Font.Style.NORMAL,
+ FontStyle.NORMAL,
org.axsl.font.Font.Weight.NORMAL,
org.axsl.font.Font.Variant.NORMAL,
org.axsl.font.Font.Stretch.NORMAL, 0, ch);
Modified: trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java
===================================================================
--- trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java 2024-07-02 11:12:32 UTC (rev 13346)
+++ trunk/foray/foray-pdf/src/test/java/org/foray/pdf/object/PdfDocumentTests.java 2025-01-09 23:20:05 UTC (rev 13347)
@@ -54,6 +54,7 @@
import org.axsl.pdf.PdfSerializationConfig;
import org.axsl.pdf.PdfVersion;
import org.axsl.ps.PsServer;
+import org.axsl.value.FontStyle;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
@@ -97,7 +98,7 @@
final RegisteredFontFamily rff = fontServer.getRegisteredFontFamily("Base14-Helvetica");
final FreeStandingFont font = rf.getFreeStandingFont();
final RegisteredFont rfd = new RegisteredFont(rf, rff,
- rf.getFreeStandingFont().getInternalEncoding(), Font.Style.NORMAL, Font.Weight.NORMAL,
+ rf.getFreeStandingFont().getInternalEncoding(), FontStyle.NORMAL, Font.Weight.NORMAL,
Font.Variant.NORMAL, Font.Stretch.NORMAL, FontFeatureSimulation.DEFAULT);
final ConsumerFont4a consumerFont = new ConsumerFont4a(font, fontConsumer);
final FontUse fontUse = new FontUse4a(consumerFont, rfd, EncodingStandard.getInstance());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-07-02 11:13:03
|
Revision: 13346
http://sourceforge.net/p/foray/code/13346
Author: victormote
Date: 2024-07-02 11:12:32 +0000 (Tue, 02 Jul 2024)
Log Message:
-----------
Improvements to natural language dictionaries.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-theology.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/fre-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/grc-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml 2024-06-26 17:27:32 UTC (rev 13345)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml 2024-07-02 11:12:32 UTC (rev 13346)
@@ -40,10 +40,12 @@
<w><t>cri-eth</t><verb/></w>
<w><t>de-sir-edst</t><verb><lemma>desire</lemma></verb></w>
<w><t>dis-pro-por-tion</t><verb><regular-root/></verb></w>
+<w><t>draw-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>dream-ing</t><noun><pluralizable/></noun></w>
<w><t>dwell-eth</t><verb><regular-root value="false"/></verb></w>
+<w><t>eat-est</t></w>
<w><t>eat-eth</t><verb><regular-root value="false"/></verb></w>
-<w><t>E-paph-ro-di-tus</t></w>
+<w><t>en-grav-en</t></w>
<w><t>esqrs</t><abbrev referenced-word="esquires"/></w>
<w><t>ex-alt-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>excell’cy</t><abbrev referenced-word="excellency"/></w>
@@ -126,6 +128,7 @@
<w><t>shew</t><verb/></w>
<w><t>shewn</t><verb><lemma>shew</lemma></verb></w>
<w><t>shin-eth</t><verb/></w>
+<w><t>shouldst</t></w>
<w><t>show-eth</t><verb><lemma>show</lemma></verb></w>
<w><t>sin-neth</t></w>
<w><t>sleep-est</t><verb><regular-root value="false"/></verb></w>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-theology.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-theology.dict.xml 2024-06-26 17:27:32 UTC (rev 13345)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-theology.dict.xml 2024-07-02 11:12:32 UTC (rev 13346)
@@ -60,6 +60,7 @@
<w><t>E-li-a-kim</t><noun/></w>
<w><t>El-y-mas</t><noun/></w>
<w><t>Ep-a-phras</t><noun/></w>
+<w><t>E-paph-ro-di-tus</t></w>
<w><t>E-pi-pha-nes</t></w>
<w><t>Er</t><noun/></w>
<w><t>er-os</t></w>
@@ -77,6 +78,7 @@
<w><t>Han-a-ni-ah</t><noun/></w>
<w><t>Ha-rod</t><noun><convertible-to-possessive/></noun></w>
<w><t>Har-o-sheth Haggoyim</t><noun><convertible-to-possessive/></noun></w>
+<w><t>Ha-za-el</t></w>
<w><t>Hen-drick-son</t><noun/><comment>Publisher.</comment></w>
<w><t>Hen-drik-sen</t><noun/><comment>Commentator.</comment></w>
<w><t>Hil-ki-ah</t><noun/></w>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml 2024-06-26 17:27:32 UTC (rev 13345)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml 2024-07-02 11:12:32 UTC (rev 13346)
@@ -650,7 +650,7 @@
<w><t>ab-struse-ly</t></w>
<w><t>ab-struse-ness</t></w>
<w><t>ab-stru-si-ty</t></w>
-<w><t>ab-surd</t></w>
+<w><t>ab-surd</t><adjective><extensible/></adjective></w>
<w><t>ab-surd-i-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ab-surd-ly</t></w>
<w><t>ab-surd-ness</t></w>
@@ -1392,7 +1392,7 @@
<w><t>ac-quired</t></w>
<phrase><t>ac-quired char-ac-ter-is-tic</t></phrase>
<phrase><t>ac-quired taste</t></phrase>
-<w><t>ac-quire-ment</t></w>
+<w><t>ac-quire-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ac-quir-er</t></w>
<w><t>ac-quir-ing</t></w>
<w><t>ac-qui-si-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -3875,7 +3875,7 @@
<w><t>ale-wife</t></w>
<w><t>Al-ex</t></w>
<w><t>A-lex-a</t></w>
-<w><t>Al-ex-an-der</t></w>
+<w><t>Al-ex-an-der</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>al-ex-an-der</t></w>
<phrase><t>Al-ex-an-der Ar-chi-pel-a-go</t></phrase>
<phrase><t>Al-ex-an-der I</t></phrase>
@@ -4239,7 +4239,7 @@
<w><t>al-le-mande</t></w>
<w><t>all=em-brac-ing</t></w>
<w><t>al-le-mont-ite</t></w>
-<w><t>Al-len</t></w>
+<w><t>Al-len</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Al-len-by</t></w>
<w><t>Al-len-dale</t></w>
<w><t>Al-len-de</t></w>
@@ -5740,7 +5740,7 @@
<w><t>a-nal-o-gous-ly</t></w>
<w><t>a-nal-o-gous-ness</t></w>
<w><t>an-a-logue</t></w>
-<w><t>a-nal-o-gy</t></w>
+<w><t>a-nal-o-gy</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>an-al-pha-bet-ic</t></w>
<w><t>an-a-lys-a-ble</t></w>
<w><t>a-nal-y-sand</t></w>
@@ -5845,7 +5845,7 @@
<w><t>an-a-tase</t></w>
<w><t>an-a-tex-es</t></w>
<w><t>an-a-tex-is</t></w>
-<w><t>a-nath-e-ma</t></w>
+<w><t>a-nath-e-ma</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>a-nath-e-mat-ic</t></w>
<w><t>a-nath-e-mat-i-cal</t></w>
<w><t>a-nath-e-mat-i-cal-ly</t></w>
@@ -8621,7 +8621,7 @@
<w><t>ap-pre-hen-sive</t></w>
<w><t>ap-pre-hen-sive-ly</t></w>
<w><t>ap-pre-hen-sive-ness</t></w>
-<w><t>ap-pren-tice</t></w>
+<w><t>ap-pren-tice</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ap-pren-ticed</t></w>
<w><t>ap-pren-tice-hood</t></w>
<w><t>ap-pren-tice-ment</t></w>
@@ -10935,7 +10935,7 @@
<w><t>a-tro-cious</t></w>
<w><t>a-tro-cious-ly</t></w>
<w><t>a-tro-cious-ness</t></w>
-<w><t>a-troc-i-ty</t></w>
+<w><t>a-troc-i-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>at-ro-coe-ru-le-us</t></w>
<w><t>At-ro-pa-te-ne</t></w>
<w><t>a-tro-phi-a</t></w>
@@ -11200,7 +11200,7 @@
<phrase><t>Au-ge-an sta-bles</t></phrase>
<w><t>Au-ge-as</t></w>
<w><t>au-gend</t></w>
-<w><t>au-ger</t></w>
+<w><t>au-ger</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<phrase><t>Au-ger ef-fect</t></phrase>
<w><t>aught</t></w>
<w><t>aught-lins</t></w>
@@ -11217,7 +11217,7 @@
<w><t>aug-men-tor</t></w>
<phrase><t>au gra-tin</t></phrase>
<w><t>Augs-burg</t></w>
-<w><t>au-gur</t></w>
+<w><t>au-gur</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>au-gu-ral</t></w>
<w><t>au-gu-ry</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>au-gust</t></w>
@@ -12642,7 +12642,7 @@
<w><t>bai-ley</t></w>
<phrase><t>Bai-ley bridge</t></phrase>
<w><t>bail-ie</t></w>
-<w><t>bail-iff</t></w>
+<w><t>bail-iff</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bail-iff-ship</t></w>
<w><t>bail-i-wick</t></w>
<w><t>Bail-laud</t></w>
@@ -12784,7 +12784,7 @@
<w><t>Bald-win</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>Bald-win I</t></phrase>
<w><t>Bald-wins-ville</t></w>
-<w><t>bale</t></w>
+<w><t>bale</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Ba-le-a-res</t></w>
<phrase><t>Bal-e-ar-ic Is-lands</t></phrase>
<w><t>ba-leen</t></w>
@@ -13454,7 +13454,7 @@
<phrase><t>bar-i-um meal</t></phrase>
<phrase><t>bar-i-um ox-ide</t></phrase>
<phrase><t>bar-i-um sul-phate</t></phrase>
-<w><t>bark</t></w>
+<w><t>bark</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>bar-kan</t></w>
<w><t>bark-an-tine</t></w>
<w><t>bar-kan-tine</t></w>
@@ -13937,7 +13937,7 @@
<w><t>Bas-ti-a</t></w>
<w><t>Ba-sti-an</t></w>
<w><t>bas-tide</t></w>
-<w><t>bas-tile</t></w>
+<w><t>bas-tile</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bas-tille</t></w>
<w><t>Bas-tille</t></w>
<phrase><t>Bas-tille Day</t></phrase>
@@ -15192,7 +15192,7 @@
<w><t>Be-ni-ta</t></w>
<w><t>Be-ni-to</t></w>
<w><t>be-ni-to-ite</t></w>
-<w><t>Ben-ja-min</t></w>
+<w><t>Ben-ja-min</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ben-ja-min</t></w>
<w><t>ben-ja-min=bush</t></w>
<w><t>Ben-ja-min=Con-stant</t></w>
@@ -15506,7 +15506,7 @@
<w><t>be-siege</t><verb><regular-root/></verb></w>
<w><t>be-sieged</t></w>
<w><t>be-siege-ment</t></w>
-<w><t>be-sieg-er</t></w>
+<w><t>be-sieg-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>be-sieg-ing</t></w>
<w><t>be-sieg-ing-ly</t></w>
<w><t>Bes-ier</t></w>
@@ -15634,7 +15634,7 @@
<w><t>Beth-sa-be-e</t></w>
<w><t>Beth-sai-da</t></w>
<w><t>Beth-sa-i-da</t></w>
-<w><t>be-tide</t></w>
+<w><t>be-tide</t><verb><regular-root/></verb></w>
<w><t>be-tid-ed</t></w>
<w><t>be-tid-ing</t></w>
<w><t>be-times</t></w>
@@ -16612,7 +16612,7 @@
<w><t>birth-mark</t></w>
<w><t>birth-night</t></w>
<w><t>birth-place</t></w>
-<w><t>birth-right</t></w>
+<w><t>birth-right</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>birth-root</t></w>
<w><t>birth-stone</t></w>
<w><t>birth-stool</t></w>
@@ -17343,7 +17343,7 @@
<w><t>blood-flow-er</t></w>
<w><t>blood-guilt-i-ness</t></w>
<w><t>blood-guilt-y</t></w>
-<w><t>blood-hound</t></w>
+<w><t>blood-hound</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>blood-ied</t></w>
<w><t>blood-i-er</t></w>
<w><t>blood-i-est</t></w>
@@ -18096,8 +18096,9 @@
<w><t>bond-hold-er</t></w>
<w><t>bond-hold-ing</t></w>
<w><t>bond-less</t></w>
-<w><t>bond-maid</t></w>
-<w><t>bond-man</t></w>
+<w><t>bond-maid</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>bond-man</t><noun><singular/><convertible-to-possessive/></noun></w>
+<w><t>bond-men</t><noun><plural/><convertible-to-possessive/></noun></w>
<phrase><t>bond pa-per</t></phrase>
<w><t>bond-ser-vant</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bond=serv-ant</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -19095,7 +19096,7 @@
<w><t>Braill-ing</t></w>
<w><t>Braill-ist</t></w>
<w><t>Brai-low-sky</t></w>
-<w><t>brain</t></w>
+<w><t>brain</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>brain-child</t></w>
<w><t>brain-chil-dren</t></w>
<phrase><t>brain cor-al</t></phrase>
@@ -19366,7 +19367,7 @@
<w><t>bread-line</t></w>
<w><t>bread-nut</t></w>
<w><t>bread-root</t></w>
-<w><t>bread-stuff</t></w>
+<w><t>bread-stuff</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>breadth</t></w>
<w><t>breadth-less</t></w>
<w><t>breadth-ways</t></w>
@@ -20338,7 +20339,8 @@
<w><t>Bu-ca-ra-man-ga</t></w>
<w><t>buc-cal</t></w>
<w><t>buc-cal-ly</t></w>
-<w><t>buc-ca-neer</t></w>
+<w><t>buc-ca-neer</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>buc-ca-neer-ing</t><adjective/></w>
<w><t>buc-ca-neer-ish</t></w>
<w><t>buc-ca-ro</t></w>
<w><t>buc-che-ro</t></w>
@@ -20634,7 +20636,7 @@
<w><t>bul-let-head</t></w>
<w><t>bul-let-head-ed</t></w>
<w><t>bul-let-head-ed-ness</t></w>
-<w><t>bul-le-tin</t></w>
+<w><t>bul-le-tin</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>bul-le-tin board</t></phrase>
<w><t>bul-le-tined</t></w>
<w><t>bul-let-less</t></w>
@@ -22166,7 +22168,7 @@
<w><t>cal-u-tron</t></w>
<w><t>Cal-va-dos</t></w>
<w><t>cal-var-i-a</t></w>
-<w><t>Cal-va-ry</t></w>
+<w><t>Cal-va-ry</t><noun><convertible-to-possessive/></noun></w>
<w><t>cal-va-ry</t></w>
<phrase><t>Cal-va-ry cross</t></phrase>
<w><t>calve</t></w>
@@ -22951,7 +22953,7 @@
<w><t>cap-i-ta-tion</t></w>
<w><t>cap-i-ta-tive</t></w>
<w><t>ca-pi-teux</t></w>
-<w><t>Cap-i-tol</t></w>
+<w><t>cap-i-tol</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Cap-i-to-line</t></w>
<w><t>ca-pit-u-lant</t></w>
<w><t>ca-pit-u-lar</t></w>
@@ -23081,7 +23083,7 @@
<w><t>ca-puched</t></w>
<w><t>cap-u-chin</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Cap-u-chin</t></w>
-<w><t>Cap-u-let</t></w>
+<w><t>Cap-u-let</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ca-put</t></w>
<w><t>cap-y-ba-ra</t></w>
<w><t>Ca-pys</t></w>
@@ -24022,7 +24024,7 @@
<w><t>cas-ta-net</t></w>
<w><t>cas-ta-nets</t></w>
<w><t>cast-a-way</t></w>
-<w><t>caste</t></w>
+<w><t>caste</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>caste-less</t></w>
<phrase><t>Cas-tel-lam-ma-re di Sta-bia</t></phrase>
<w><t>cas-tel-lan</t></w>
@@ -26629,7 +26631,7 @@
<w><t>chid-ed</t></w>
<w><t>chid-er</t></w>
<w><t>chid-ing-ly</t></w>
-<w><t>chief</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>chief</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective><extensible/></adjective></w>
<w><t>chief-dom</t></w>
<phrase><t>Chief Ed-u-ca-tion Of-fic-er</t></phrase>
<phrase><t>chief jus-tice</t></phrase>
@@ -27996,7 +27998,7 @@
<phrase><t>cir-cuit train-ing</t></phrase>
<w><t>cir-cu-i-ty</t></w>
<w><t>cir-cu-la-ble</t></w>
-<w><t>cir-cu-lar</t></w>
+<w><t>cir-cu-lar</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>cir-cu-lar func-tion</t></phrase>
<w><t>cir-cu-lar-ise</t></w>
<w><t>cir-cu-lar-ised</t></w>
@@ -28530,7 +28532,7 @@
<w><t>class-i-er</t></w>
<w><t>class-i-est</t></w>
<w><t>clas-si-fi-a-ble</t></w>
-<w><t>clas-si-fi-ca-tion</t></w>
+<w><t>clas-si-fi-ca-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>clas-si-fi-ca-tion-al</t></w>
<phrase><t>clas-si-fi-ca-tion sched-ule</t></phrase>
<w><t>clas-si-fi-ca-to-ry</t></w>
@@ -28615,7 +28617,7 @@
<phrase><t>claw set-ting</t></phrase>
<w><t>clax-on</t></w>
<w><t>Clax-ton</t></w>
-<w><t>Clay</t></w>
+<w><t>Clay</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>clay</t></w>
<w><t>clay-bank</t></w>
<w><t>Clay-born</t></w>
@@ -29851,7 +29853,7 @@
<w><t>coigne</t></w>
<w><t>coign-ing</t></w>
<phrase><t>coign of van-tage</t></phrase>
-<w><t>coil</t></w>
+<w><t>coil</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Co-im-ba-tore</t></w>
<w><t>Coim-bra</t></w>
<w><t>coin</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
@@ -30246,7 +30248,7 @@
<w><t>col-o-niz-a-ble</t></w>
<w><t>col-o-ni-za-tion</t></w>
<w><t>col-o-ni-za-tion-ist</t></w>
-<w><t>col-o-nize</t></w>
+<w><t>col-o-nize</t><verb><regular-root/></verb></w>
<w><t>col-o-nized</t></w>
<w><t>col-o-niz-er</t></w>
<w><t>col-on-nade</t></w>
@@ -30727,7 +30729,7 @@
<w><t>com-mod-i-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>com-mo-dore</t></w>
<w><t>Com-mo-dus</t></w>
-<w><t>com-mon</t></w>
+<w><t>com-mon</t><adjective><extensible/></adjective></w>
<w><t>com-mon-a-ble</t></w>
<w><t>com-mon-age</t></w>
<w><t>com-mon-al-i-ty</t></w>
@@ -32622,7 +32624,7 @@
<w><t>con-tin-u-al-i-ty</t></w>
<w><t>con-tin-u-al-ly</t></w>
<w><t>con-tin-u-al-ness</t></w>
-<w><t>con-tin-u-ance</t></w>
+<w><t>con-tin-u-ance</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>con-tin-u-ant</t></w>
<w><t>con-tin-u-ate</t></w>
<w><t>con-tin-uate-ly</t></w>
@@ -33103,8 +33105,7 @@
<w><t>coo-li-bah</t></w>
<w><t>Cool-idge</t></w>
<w><t>Coo-lidge</t></w>
-<w><t>cool-ie</t></w>
-<w><t>coo-lie</t></w>
+<w><t>coo-lie</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cool-ing-ly</t></w>
<w><t>cool-ing-ness</t></w>
<w><t>cool-ing=off</t></w>
@@ -33138,7 +33139,7 @@
<w><t>co-op-er-a-tion</t></w>
<w><t>co-öp-er-a-tion</t></w>
<w><t>co=op-er-a-tion</t></w>
-<w><t>co-op-er-a-tion-ist</t></w>
+<w><t>co-op-er-a-tion-ist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>co-öp-er-a-tion-ist</t></w>
<w><t>co-op-er-a-tive</t></w>
<w><t>co-öp-er-a-tive</t></w>
@@ -34213,7 +34214,7 @@
<w><t>cou-é</t></w>
<w><t>Cou-é-ism</t></w>
<w><t>cou-gar</t></w>
-<w><t>cough</t></w>
+<w><t>cough</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>cough-er</t></w>
<phrase><t>cough mix-ture</t></phrase>
<w><t>could</t></w>
@@ -34237,9 +34238,10 @@
<w><t>coun-cil</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>coun-cil-lor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>coun-cil-lor-ship</t></w>
-<w><t>coun-cil-man</t></w>
+<w><t>coun-cil-man</t><noun><singular/><convertible-to-possessive/></noun></w>
<phrase><t>coun-cil=man-ag-er plan</t></phrase>
<w><t>coun-cil-man-ic</t></w>
+<w><t>coun-cil-men</t><noun><plural/><convertible-to-possessive/></noun></w>
<phrase><t>Coun-cil of States</t></phrase>
<phrase><t>Coun-cil of Trent</t></phrase>
<phrase><t>coun-cil of war</t></phrase>
@@ -34873,7 +34875,7 @@
<phrase><t>cran-ber-ry bush</t></phrase>
<w><t>cran-ce-lin</t></w>
<w><t>cran-dall</t></w>
-<w><t>crane</t></w>
+<w><t>crane</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Crane</t></w>
<w><t>crane-bill</t></w>
<w><t>crane-like</t></w>
@@ -36732,7 +36734,7 @@
<w><t>Cus-ter</t></w>
<w><t>cus-to-des</t></w>
<w><t>cus-to-di-al</t></w>
-<w><t>cus-to-di-an</t></w>
+<w><t>cus-to-di-an</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cus-to-di-an-ship</t></w>
<w><t>cus-to-dy</t></w>
<w><t>cus-tom</t></w>
@@ -38263,7 +38265,7 @@
<w><t>de-bussed</t></w>
<w><t>de-bus-sing</t></w>
<w><t>De-bus-sy</t></w>
-<w><t>de-but</t></w>
+<w><t>de-but</t><noun/></w>
<w><t>dé-but</t></w>
<w><t>deb-u-tant</t></w>
<w><t>déb-u-tant</t></w>
@@ -39496,7 +39498,7 @@
<w><t>del-uge</t></w>
<w><t>del-uged</t></w>
<w><t>del-ug-ing</t></w>
-<w><t>de-lu-sion</t></w>
+<w><t>de-lu-sion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>de-lu-sion-al</t></w>
<w><t>de-lu-sive</t></w>
<w><t>de-lu-sive-ly</t></w>
@@ -40350,7 +40352,7 @@
<w><t>de-re-is-ti-cal-ly</t></w>
<w><t>Der-ek</t></w>
<w><t>der-e-lict</t></w>
-<w><t>der-e-lic-tion</t></w>
+<w><t>der-e-lic-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>der-e-lict-ly</t></w>
<w><t>der-e-lict-ness</t></w>
<w><t>de-req-ui-si-tion</t></w>
@@ -41014,7 +41016,7 @@
<w><t>dev-as-ta-tive</t></w>
<w><t>dev-as-ta-tor</t></w>
<w><t>dev-el</t></w>
-<w><t>de-vel-op</t></w>
+<w><t>de-vel-op</t><verb><regular-root/></verb></w>
<w><t>de-vel-op-a-bil-i-ty</t></w>
<w><t>de-vel-op-a-ble</t></w>
<w><t>de-vel-ope</t></w>
@@ -42329,7 +42331,7 @@
<w><t>di-plo-ic</t></w>
<w><t>dip-loid</t></w>
<w><t>dip-loi-dic</t></w>
-<w><t>di-plo-ma</t></w>
+<w><t>di-plo-ma</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>di-plo-ma-cy</t></w>
<w><t>di-plo-maed</t></w>
<w><t>di-plo-ma-ing</t></w>
@@ -42704,7 +42706,7 @@
<w><t>dis-com-fit</t><verb><regular-root/></verb></w>
<w><t>dis-com-fit-er</t></w>
<w><t>dis-com-fi-ture</t></w>
-<w><t>dis-com-fort</t></w>
+<w><t>dis-com-fort</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-com-fort-a-ble</t></w>
<w><t>dis-com-fort-a-bly</t></w>
<w><t>dis-com-fort-ing-ly</t></w>
@@ -42919,7 +42921,7 @@
<w><t>dis-en-throne</t></w>
<w><t>dis-en-throne-ment</t></w>
<w><t>dis-en-ti-tle</t></w>
-<w><t>dis-en-tomb</t></w>
+<w><t>dis-en-tomb</t><verb><regular-root/></verb></w>
<w><t>dis-en-tomb-ment</t></w>
<w><t>dis-en-trance</t></w>
<w><t>dis-en-tranced</t></w>
@@ -43379,7 +43381,7 @@
<w><t>dis-put-ed</t></w>
<w><t>dis-pute-less</t></w>
<w><t>dis-put-er</t></w>
-<w><t>dis-put-ing</t></w>
+<w><t>dis-put-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-qual-i-fi-a-ble</t></w>
<w><t>dis-qual-i-fi-ca-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-qual-i-fied</t></w>
@@ -43424,7 +43426,7 @@
<w><t>dis-rob-er</t></w>
<w><t>dis-rob-ing</t></w>
<w><t>dis-root</t></w>
-<w><t>dis-rupt</t></w>
+<w><t>dis-rupt</t><verb><regular-root/></verb></w>
<w><t>dis-rupt-er</t></w>
<w><t>dis-rup-tion</t></w>
<w><t>dis-rup-tive</t></w>
@@ -43992,7 +43994,7 @@
<w><t>dix-ies</t></w>
<w><t>dix-it</t></w>
<w><t>Dix-moor</t></w>
-<w><t>Dix-on</t></w>
+<w><t>Dix-on</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dix-y</t></w>
<w><t>diy</t></w>
<w><t>DIY</t></w>
@@ -44156,7 +44158,7 @@
<w><t>do-dec-a-syl-la-ble</t></w>
<w><t>do-de-cyl-phen-ol</t></w>
<w><t>Dodge</t></w>
-<w><t>dodge</t></w>
+<w><t>dodge</t><verb><regular-root/></verb></w>
<phrase><t>Dodge Cit-y</t></phrase>
<w><t>Dodg-em</t></w>
<w><t>dodg-er</t></w>
@@ -44938,7 +44940,7 @@
<w><t>dough</t></w>
<w><t>dough-bel-ly</t></w>
<w><t>dough-boy</t></w>
-<w><t>dough-face</t></w>
+<w><t>dough-face</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dough-i-er</t></w>
<w><t>dough-i-est</t></w>
<w><t>dough-i-ness</t></w>
@@ -45757,7 +45759,7 @@
<w><t>du-al=pur-pose</t></w>
<w><t>Duane</t></w>
<w><t>du-ar-chy</t></w>
-<w><t>dub</t></w>
+<w><t>dub</t><verb><regular-root/></verb></w>
<w><t>Du-bai</t></w>
<phrase><t>Du Bar-ry</t></phrase>
<w><t>dub-bel-tje</t></w>
@@ -46020,7 +46022,7 @@
<w><t>dun-gas</t></w>
<phrase><t>dung bee-tle</t></phrase>
<w><t>Dun-ge-ness</t></w>
-<w><t>dun-geon</t></w>
+<w><t>dun-geon</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dung-hill</t></w>
<w><t>dung-y</t></w>
<w><t>dun-ie-was-sal</t></w>
@@ -46331,7 +46333,7 @@
<w><t>dye-wood</t></w>
<w><t>Dyf-ed</t></w>
<w><t>dy-ing</t></w>
-<w><t>dyke</t></w>
+<w><t>dyke</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dyk-ing</t></w>
<w><t>Dyl-an</t></w>
<w><t>Dy-mas</t></w>
@@ -46366,8 +46368,8 @@
<w><t>dy-nast</t></w>
<w><t>dy-nas-tic</t></w>
<w><t>dy-nas-ti-cal-ly</t></w>
-<w><t>dyn-as-ty</t></w>
-<w><t>dy-nas-ty</t></w>
+<w><t>dy-nas-ty</t><noun><singular/><convertible-to-possessive/></noun></w>
+<w><t>dy-nas-ties</t><noun><plural/><convertible-to-possessive/></noun></w>
<w><t>dy-na-tron</t></w>
<phrase><t>dy-na-tron os-cil-la-tor</t></phrase>
<w><t>dyne</t></w>
@@ -46496,13 +46498,14 @@
<phrase><t>ea-gle owl</t></phrase>
<phrase><t>ea-gle ray</t></phrase>
<w><t>ea-gle-stone</t></w>
-<w><t>ea-glet</t></w>
+<w><t>ea-glet</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ea-gle-wood</t></w>
<w><t>ea-gre</t></w>
<w><t>EAK</t></w>
<w><t>Ea-kins</t></w>
<w><t>eal-der-man</t></w>
-<w><t>eal-dor-man</t></w>
+<w><t>eal-dor-man</t><noun><singular/><convertible-to-possessive/></noun></w>
+<w><t>eal-dor-men</t><noun><plural/><convertible-to-possessive/></noun></w>
<w><t>Ea-ling</t></w>
<w><t>EAM</t></w>
<w><t>Ea-nes</t></w>
@@ -48429,7 +48432,7 @@
<w><t>em-ble-ments</t></w>
<w><t>em-bod-ied</t></w>
<w><t>em-bod-i-er</t></w>
-<w><t>em-bod-i-ment</t></w>
+<w><t>em-bod-i-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>em-bod-y</t></w>
<w><t>em-bod-y-ing</t></w>
<w><t>em-boî-té</t></w>
@@ -49556,8 +49559,9 @@
<w><t>en-plane</t></w>
<w><t>en-planed</t></w>
<w><t>en-plan-ing</t></w>
-<w><t>en-quire</t></w>
+<w><t>en-quire</t><verb><regular-root/></verb></w>
<w><t>en-quired</t></w>
+<w><t>en-quir-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>en-quir-ies</t></w>
<w><t>en-quir-ing</t></w>
<w><t>en-quir-y</t></w>
@@ -50631,7 +50635,7 @@
<w><t>E-quu-le-i</t></w>
<w><t>E-quul-e-us</t></w>
<w><t>E-quu-le-us</t></w>
-<w><t>e-ra</t></w>
+<w><t>e-ra</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>e-ra-di-ate</t></w>
<w><t>e-ra-di-at-ed</t></w>
<w><t>e-ra-di-at-ing</t></w>
@@ -51407,7 +51411,7 @@
<w><t>E-thi-op</t></w>
<w><t>E-thi-ope</t></w>
<w><t>E-thi-o-pi-a</t></w>
-<w><t>E-thi-o-pi-an</t></w>
+<w><t>E-thi-o-pi-an</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>E-thi-op-ic</t></w>
<w><t>E-thi-o-pic</t></w>
<w><t>Eth-lyn</t></w>
@@ -52542,7 +52546,7 @@
<w><t>ex-fo-li-a-tive</t></w>
<phrase><t>ex gra-tia</t></phrase>
<w><t>ex-hal-ant</t></w>
-<w><t>ex-ha-la-tion</t></w>
+<w><t>ex-ha-la-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ex-hale</t></w>
<w><t>ex-haled</t></w>
<w><t>ex-ha-lent</t></w>
@@ -53466,7 +53470,7 @@
<w><t>eyre</t></w>
<w><t>Eyre</t></w>
<phrase><t>Eyre Pen-in-su-la</t></phrase>
-<w><t>ey-rie</t></w>
+<w><t>ey-rie</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ey-rir</t></w>
<w><t>ey-ry</t></w>
<w><t>Ey-senck</t></w>
@@ -53669,7 +53673,7 @@
<w><t>fa-ga-ceous</t></w>
<w><t>Fag-gi</t></w>
<w><t>fag-ging</t></w>
-<w><t>fag-got</t></w>
+<w><t>fag-got</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fag-got-ing</t></w>
<w><t>Fa-gin</t></w>
<w><t>fag-ot</t></w>
@@ -53907,7 +53911,7 @@
<w><t>fa-ma-cide</t></w>
<w><t>Fa-ma-gu-sta</t></w>
<w><t>fa-ma-ti-nite</t></w>
-<w><t>fame</t></w>
+<w><t>fame</t><noun><singular/><convertible-to-possessive/></noun></w>
<w><t>famed</t></w>
<w><t>fame-less</t></w>
<w><t>Fa-meuse</t></w>
@@ -54594,7 +54598,7 @@
<w><t>fed-dan</t></w>
<w><t>fed-e-li-ni</t></w>
<w><t>fed-er-a-cy</t></w>
-<w><t>fed-er-al</t><adjective/></w>
+<w><t>fed-er-al</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective/></w>
<w><t>Fed-er-al</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>fed-er-al dis-trict</t></phrase>
<w><t>fed-er-al-ese</t></w>
@@ -54641,7 +54645,7 @@
<w><t>feed-back</t></w>
<w><t>feed-bag</t></w>
<w><t>feed-box</t></w>
-<w><t>feed-er</t></w>
+<w><t>feed-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>feed-ing</t><verb><lemma>feed</lemma></verb></w>
<phrase><t>feed-ing bot-tle</t></phrase>
<w><t>feed-ing-stuff</t></w>
@@ -54911,7 +54915,7 @@
<phrase><t>Fer-mi=Di-rac sta-tis-tics</t></phrase>
<w><t>fer-mi-on</t></w>
<w><t>fer-mi-um</t></w>
-<w><t>fern</t></w>
+<w><t>fern</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Fern</t></w>
<w><t>Fer-nand</t></w>
<w><t>Fer-nan-da</t></w>
@@ -55828,7 +55832,7 @@
<w><t>fire-dog</t></w>
<w><t>fire-drag-on</t></w>
<w><t>fire-drake</t></w>
-<w><t>fire=eat-er</t></w>
+<w><t>fire=eat-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fire=eat-ing</t></w>
<phrase><t>fire en-gine</t></phrase>
<phrase><t>fire es-cape</t></phrase>
@@ -56584,7 +56588,7 @@
<w><t>flim-si-ly</t></w>
<w><t>flim-si-ness</t></w>
<w><t>flim-sy</t></w>
-<w><t>flinch</t></w>
+<w><t>flinch</t><verb><regular-root/></verb></w>
<w><t>flinch-er</t></w>
<w><t>flinch-ing-ly</t></w>
<w><t>flin-ders</t></w>
@@ -56591,9 +56595,10 @@
<phrase><t>Flin-ders bar</t></phrase>
<phrase><t>Flin-ders Is-land</t></phrase>
<phrase><t>Flin-ders Range</t></phrase>
-<w><t>fling</t></w>
+<w><t>fling</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root value="false"/></verb></w>
<w><t>fling-er</t></w>
<w><t>fling-ing</t></w>
+<w><t>flings</t><verb><lemma>fling</lemma></verb></w>
<w><t>Flint</t></w>
<w><t>flint</t></w>
<w><t>flint-head</t></w>
@@ -56935,7 +56940,7 @@
<w><t>flum-mox</t></w>
<w><t>flump</t></w>
<w><t>flung</t></w>
-<w><t>flunk</t></w>
+<w><t>flunk</t><verb><regular-root/></verb></w>
<w><t>flunk-ey</t></w>
<w><t>flun-key</t></w>
<w><t>flun-key-ism</t></w>
@@ -58641,7 +58646,7 @@
<w><t>freez-a-ble</t></w>
<w><t>freez-a-dried</t></w>
<w><t>freez-a-dry-ing</t></w>
-<w><t>freeze</t></w>
+<w><t>freeze</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root value="false"/></verb></w>
<w><t>freeze=dry-ing</t></w>
<w><t>freez-er</t></w>
<w><t>freez-ing</t></w>
@@ -60004,7 +60009,7 @@
<w><t>Gal-i-le-an</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>Gal-i-le-an tel-e-scope</t></phrase>
<w><t>gal-i-lee</t></w>
-<w><t>Gal-i-lee</t></w>
+<w><t>Gal-i-lee</t><noun><convertible-to-possessive/></noun></w>
<w><t>Gal-i-le-o</t></w>
<w><t>gal-i-ma-ti-as</t></w>
<w><t>gal-in-gale</t></w>
@@ -61642,7 +61647,7 @@
<w><t>ges-tic-u-late</t></w>
<w><t>ges-tic-u-lat-ed</t></w>
<w><t>ges-tic-u-lat-ing</t></w>
-<w><t>ges-tic-u-la-tion</t></w>
+<w><t>ges-tic-u-la-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ges-tic-u-la-tive</t></w>
<w><t>ges-tic-u-la-tive-ly</t></w>
<w><t>ges-tic-u-la-tor</t></w>
@@ -64029,7 +64034,7 @@
<w><t>grasp-ing-ly</t></w>
<w><t>grasp-ing-ness</t></w>
<w><t>grasp-less</t></w>
-<w><t>grass</t></w>
+<w><t>grass</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Grass</t></w>
<w><t>grass-cut-ter</t></w>
<w><t>Grasse</t></w>
@@ -64284,7 +64289,7 @@
<w><t>grebe</t></w>
<w><t>Gre-bo</t><noun><convertible-to-possessive/></noun></w>
<w><t>gre-ca-le</t></w>
-<w><t>Gre-cian</t></w>
+<w><t>gre-cian</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective></adjective></w>
<w><t>Gre-cise</t></w>
<w><t>Gre-cised</t></w>
<w><t>Gre-cis-ing</t></w>
@@ -64297,7 +64302,7 @@
<w><t>Gre-co</t></w>
<w><t>Gre-co=Ro-man</t></w>
<w><t>gree</t></w>
-<w><t>Greece</t></w>
+<w><t>Greece</t><noun><convertible-to-possessive/></noun></w>
<w><t>greed</t></w>
<w><t>greed-i-er</t></w>
<w><t>greed-i-est</t></w>
@@ -65274,7 +65279,7 @@
<w><t>gul-lied</t></w>
<w><t>gull-like</t></w>
<w><t>Gull-strand</t></w>
-<w><t>gul-ly</t></w>
+<w><t>gul-ly</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>gul-ly-ing</t></w>
<w><t>gu-los-i-ty</t></w>
<w><t>gulp</t></w>
@@ -67906,7 +67911,7 @@
<w><t>hearth-less</t></w>
<w><t>hearth-side</t></w>
<w><t>hearth-stead</t></w>
-<w><t>hearth-stone</t></w>
+<w><t>hearth-stone</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>heart-i-er</t></w>
<w><t>heart-ies</t></w>
<w><t>heart-i-est</t></w>
@@ -69757,6 +69762,7 @@
<w><t>high-tail</t></w>
<phrase><t>High Tat-ra</t></phrase>
<w><t>high=ten-sion</t></w>
+<w><t>high=toned</t><adjective/></w>
<phrase><t>high trea-son</t></phrase>
<w><t>Hights-town</t></w>
<w><t>high-ty=tigh-ty</t></w>
@@ -70120,7 +70126,7 @@
<w><t>his-tri-on-i-cal-ly</t></w>
<w><t>his-tri-on-ics</t></w>
<w><t>his-tri-o-nism</t></w>
-<w><t>hit</t></w>
+<w><t>hit</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root value="false"/></verb></w>
<w><t>hitch</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Hitch-cock</t></w>
<w><t>hitch-er</t></w>
@@ -70666,7 +70672,7 @@
<w><t>home-y-ness</t></w>
<w><t>hom-i-ci-dal</t></w>
<w><t>hom-i-ci-dal-ly</t></w>
-<w><t>hom-i-cide</t></w>
+<w><t>hom-i-cide</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>hom-i-er</t></w>
<w><t>hom-i-est</t></w>
<w><t>hom-i-let-ic</t></w>
@@ -74436,7 +74442,7 @@
<w><t>im-mi-grate</t></w>
<w><t>im-mi-grat-ed</t></w>
<w><t>im-mi-grat-ing</t></w>
-<w><t>im-mi-gra-tion</t></w>
+<w><t>im-mi-gra-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>im-mi-gra-tion-al</t></w>
<w><t>im-mi-gra-tor</t></w>
<w><t>im-mi-gra-to-ry</t></w>
@@ -75277,7 +75283,7 @@
<w><t>in-burst</t></w>
<w><t>in-by</t></w>
<w><t>inc</t></w>
-<w><t>In-ca</t></w>
+<w><t>In-ca</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>In-ca-bloc</t></w>
<w><t>in-cage</t></w>
<w><t>in-caged</t></w>
@@ -75302,7 +75308,7 @@
<w><t>in-can-ta-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>in-can-ta-tion-al</t></w>
<w><t>in-can-ta-to-ry</t></w>
-<w><t>in-ca-pa-bil-i-ty</t></w>
+<w><t>in-ca-pa-bil-i-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>in-ca-pa-ble</t></w>
<w><t>in-ca-pa-ble-ness</t></w>
<w><t>in-ca-pa-bly</t></w>
@@ -76225,7 +76231,7 @@
<w><t>in-duc-tee</t></w>
<w><t>in-duc-tile</t></w>
<w><t>in-duc-til-i-ty</t></w>
-<w><t>in-duc-tion</t></w>
+<w><t>in-duc-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>in-duc-tion coil</t></phrase>
<phrase><t>in-duc-tion hard-en-ing</t></phrase>
<phrase><t>in-duc-tion heat-ing</t></phrase>
@@ -80902,7 +80908,7 @@
<w><t>jal-ou-sie</t></w>
<w><t>jal-ou-sied</t></w>
<w><t>ja-lur</t></w>
-<w><t>jam</t></w>
+<w><t>jam</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Jam</t></w>
<w><t>Ja-mai-ca</t></w>
<w><t>Ja-mai-can</t></w>
@@ -83088,7 +83094,7 @@
<phrase><t>Ken-sing-ton and Chel-sea</t></phrase>
<w><t>ken-speck-le</t></w>
<w><t>ken-speck-led</t></w>
-<w><t>Kent</t></w>
+<w><t>Kent</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>kent</t></w>
<w><t>ken-te</t></w>
<w><t>Kent-ish</t></w>
@@ -84146,8 +84152,8 @@
<w><t>knowl-edge-a-bly</t></w>
<w><t>know-ledge-less</t></w>
<w><t>known</t></w>
-<w><t>know=noth-ing</t></w>
-<w><t>know-noth-ing-ism</t></w>
+<w><t>know=noth-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>know=noth-ing-ism</t></w>
<phrase><t>known quan-ti-ty</t></phrase>
<w><t>knows</t><verb/></w>
<w><t>Knox</t></w>
@@ -84892,7 +84898,7 @@
<w><t>lace-work</t></w>
<w><t>Lac-ey</t></w>
<w><t>La-chaise</t></w>
-<w><t>lach-es</t></w>
+<w><t>lach-es</t><noun><number-any/></noun></w>
<w><t>Lach-e-sis</t></w>
<w><t>La-chish</t></w>
<w><t>Lach-lan</t></w>
@@ -85380,7 +85386,7 @@
<w><t>lamp-less</t></w>
<w><t>lamp-light</t></w>
<w><t>lamp-light-er</t></w>
-<w><t>lam-poon</t></w>
+<w><t>lam-poon</t><verb><regular-root/></verb></w>
<w><t>lam-poon-er</t></w>
<w><t>lam-poon-er-y</t></w>
<w><t>lam-poon-ist</t></w>
@@ -86218,7 +86224,7 @@
<w><t>law-ful</t></w>
<w><t>law-ful-ly</t></w>
<w><t>law-ful-ness</t></w>
-<w><t>law-giv-er</t></w>
+<w><t>law-giv-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>law-giv-ing</t></w>
<w><t>la-wine</t></w>
<w><t>law-ing</t></w>
@@ -86421,7 +86427,7 @@
<w><t>Leah</t></w>
<w><t>Le-ah</t></w>
<w><t>Lea-hy</t></w>
-<w><t>leak</t></w>
+<w><t>leak</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>leak-age</t></w>
<w><t>leak-ance</t></w>
<w><t>leak-er</t></w>
@@ -86755,7 +86761,7 @@
<w><t>le-git-i-mised</t></w>
<w><t>le-git-i-mis-ing</t></w>
<w><t>le-git-i-mism</t></w>
-<w><t>le-git-i-mist</t></w>
+<w><t>le-git-i-mist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>le-git-i-mis-tic</t></w>
<w><t>le-git-i-mi-za-tion</t></w>
<w><t>le-git-i-mize</t></w>
@@ -87017,7 +87023,7 @@
<w><t>Le-on-te-us</t></w>
<w><t>Le-on-tyne</t></w>
<w><t>leop-ard</t></w>
-<w><t>leo-pard</t></w>
+<w><t>leo-pard</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>leop-ard-ess</t></w>
<w><t>Le-o-par-di</t></w>
<phrase><t>leop-ard lil-y</t></phrase>
@@ -88985,7 +88991,7 @@
<w><t>lode-star</t></w>
<w><t>lode-stone</t></w>
<w><t>Lodge</t></w>
-<w><t>lodge</t></w>
+<w><t>lodge</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>lodge-a-ble</t></w>
<w><t>lodged</t></w>
<w><t>lodge-ment</t></w>
@@ -89779,7 +89785,7 @@
<w><t>low=mind-ed-ly</t></w>
<w><t>low=mind-ed-ness</t></w>
<w><t>lown</t></w>
-<w><t>Lowndes</t></w>
+<w><t>Lowndes</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>low-ness</t></w>
<phrase><t>low=pass fil-ter</t></phrase>
<w><t>low=pres-sure</t></w>
@@ -90985,7 +90991,7 @@
<w><t>mag-mat-ic</t></w>
<w><t>mag-ma-tism</t></w>
<w><t>Mag-na</t></w>
-<phrase><t>Mag-na Car-ta</t></phrase>
+<w><t>Mag-na Car-ta</t><noun><convertible-to-possessive/></noun></w>
<phrase><t>Mag-na Char-ta</t></phrase>
<phrase><t>mag-na cum lau-de</t></phrase>
<phrase><t>Mag-na Grae-ci-a</t></phrase>
@@ -91094,7 +91100,7 @@
<w><t>Mag-ni-to-gorsk</t></w>
<w><t>mag-ni-tude</t></w>
<w><t>mag-ni-tu-di-nous</t></w>
-<w><t>mag-no-lia</t></w>
+<w><t>mag-no-lia</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Mag-no-lia</t></w>
<w><t>mag-no-li-a</t></w>
<w><t>mag-no-li-a-ceous</t></w>
@@ -91859,7 +91865,8 @@
<w><t>man-i-fes-ta-tive-ly</t></w>
<phrase><t>Man-i-fest Des-ti-ny</t></phrase>
<w><t>man-i-fest-ly</t><adverb/></w>
-<w><t>man-i-fes-to</t></w>
+<w><t>man-i-fes-to</t><noun><singular/><convertible-to-possessive/></noun></w>
+<w><t>man-i-fes-tos</t><noun><plural/><convertible-to-possessive/></noun></w>
<w><t>man-i-fold</t></w>
<w><t>man-i-fold-er</t></w>
<w><t>man-i-fold-ly</t></w>
@@ -93334,7 +93341,7 @@
<w><t>Maz-de-ism</t></w>
<w><t>maz-door</t></w>
<w><t>maz-dur</t></w>
-<w><t>maze</t></w>
+<w><t>maze</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>mazed-ly</t></w>
<w><t>mazed-ness</t></w>
<w><t>ma-ze=ga-ne</t></w>
@@ -94128,7 +94135,7 @@
<w><t>men-a-di-one</t></w>
<w><t>Me-na-do</t></w>
<w><t>Me-naech-mi</t></w>
-<w><t>me-nag-er-ie</t></w>
+<w><t>me-nag-er-ie</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>Men-ai Strait</t></phrase>
<w><t>Me-nam</t></w>
<w><t>Me-nan-der</t></w>
@@ -96003,8 +96010,9 @@
<w><t>min-i-skirt</t></w>
<w><t>min-i-skirt-ed</t></w>
<w><t>min-is-ter</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
-<w><t>min-is-te-ri-al</t></w>
+<w><t>min-is-te-ri-al</t><adjective/></w>
<w><t>min-is-te-ri-al-ist</t></w>
+<w><t>min-is-te-ri-al-ly</t><adverb/></w>
<w><t>min-is-te-ri-um</t></w>
<phrase><t>min-is-ter of state</t></phrase>
<phrase><t>min-is-ter plen-i-po-ten-tiar-y</t></phrase>
@@ -96037,7 +96045,7 @@
<w><t>Mi-ño</t></w>
<w><t>Mi-no-an</t></w>
<w><t>Mi-nor</t></w>
-<w><t>mi-nor</t></w>
+<w><t>mi-nor</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective><extensible value="false"/></adjective></w>
<phrase><t>mi-nor ax-is</t></phrase>
<w><t>Mi-nor-ca</t></w>
<phrase><t>mi-nor can-on</t></phrase>
@@ -96567,6 +96575,7 @@
<w><t>mis-meas-ured</t></w>
<w><t>mis-meas-ur-ing</t></w>
<w><t>mis-mount</t></w>
+<w><t>mis-name</t><verb><regular-root/></verb></w>
<w><t>mis-nar-rate</t></w>
<w><t>mis-nar-rat-ed</t></w>
<w><t>mis-nar-rat-ing</t></w>
@@ -98371,7 +98380,7 @@
<phrase><t>mos-qui-to hawk</t></phrase>
<phrase><t>mos-qui-to net</t></phrase>
<w><t>Moss</t></w>
-<w><t>moss</t></w>
+<w><t>moss</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>moss ag-ate</t></phrase>
<w><t>moss-back</t></w>
<w><t>Möss-bau-er</t></w>
@@ -98399,7 +98408,7 @@
<w><t>mo-tel</t></w>
<w><t>mo-tet</t></w>
<w><t>mote-y</t></w>
-<w><t>moth</t></w>
+<w><t>moth</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>moth-ball</t></w>
<w><t>moth=eat-en</t></w>
<w><t>moth-er</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
@@ -100444,7 +100453,7 @@
<w><t>nav-i-ga-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>Nav-i-ga-tion Acts</t></phrase>
<w><t>nav-i-ga-tion-al</t></w>
-<w><t>nav-i-ga-tor</t></w>
+<w><t>nav-i-ga-tor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Náv-pak-tos</t></w>
<w><t>Nav-rat-i-lo-va</t></w>
<w><t>nav-vy</t></w>
@@ -101548,7 +101557,7 @@
<w><t>nick-ey</t></w>
<w><t>Nick-laus</t></w>
<w><t>nick-nack</t></w>
-<w><t>nick-name</t></w>
+<w><t>nick-name</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>nick-named</t></w>
<w><t>nick-nam-er</t></w>
<w><t>nick-nam-ing</t></w>
@@ -102159,7 +102168,7 @@
<w><t>nom-i-na-tive</t></w>
<w><t>nom-i-na-tive-ly</t></w>
<w><t>nom-i-na-tor</t></w>
-<w><t>nom-i-nee</t></w>
+<w><t>nom-i-nee</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>no-mism</t></w>
<w><t>no-mis-tic</t></w>
<w><t>no-mo-can-on</t></w>
@@ -108012,7 +108021,7 @@
<w><t>nul-li-fi-ca-tor</t></w>
<w><t>nul-li-fid-i-an</t></w>
<w><t>nul-li-fied</t></w>
-<w><t>nul-li-fi-er</t></w>
+<w><t>nul-li-fi-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>nul-li-fy</t></w>
<w><t>nul-li-fy-ing</t></w>
<w><t>nul-lip-a-ra</t></w>
@@ -108294,7 +108303,7 @@
<w><t>o-a-sit-hous-es</t></w>
<w><t>o-a-sit-ic</t></w>
<w><t>oast</t></w>
-<w><t>oat</t></w>
+<w><t>oat</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>oat-cake</t></w>
<w><t>oat-en</t></w>
<w><t>oat-er</t></w>
@@ -110190,7 +110199,7 @@
<w><t>or-dain-a-ble</t></w>
<w><t>or-dain-er</t></w>
<w><t>or-dain-ment</t></w>
-<w><t>or-deal</t></w>
+<w><t>or-deal</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>or-der</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<phrase><t>or-der a-bout</t></phrase>
<phrase><t>or-der arms</t></phrase>
@@ -110374,7 +110383,7 @@
<w><t>o-rig-i-na-tion</t></w>
<w><t>o-rig-i-na-tive</t></w>
<w><t>o-rig-i-na-tive-ly</t></w>
-<w><t>o-rig-i-na-tor</t></w>
+<w><t>o-rig-i-na-tor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>o-ri-hon</t></w>
<w><t>o-ri-na-sal</t></w>
<w><t>o-ri-na-sal-ly</t></w>
@@ -110818,7 +110827,7 @@
<w><t>os-tra-cism</t></w>
<w><t>os-tra-ciz-a-ble</t></w>
<w><t>os-tra-ci-za-tion</t></w>
-<w><t>os-tra-cize</t></w>
+<w><t>os-tra-cize</t><verb><regular-root/></verb></w>
<w><t>os-tra-ciz-er</t></w>
<w><t>os-tra-cod</t></w>
<w><t>os-tra-co-dan</t></w>
@@ -115991,7 +116000,7 @@
<phrase><t>Par-tic-u-lars of Claim</t></phrase>
<w><t>par-tic-u-late</t></w>
<w><t>par-tied</t></w>
-<w><t>part-ing</t></w>
+<w><t>part-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>part-ing strip</t></phrase>
<phrase><t>par-ti pris</t></phrase>
<w><t>par-tis</t></w>
@@ -118363,7 +118372,7 @@
<w><t>Pe-ru-gi-no</t></w>
<w><t>pe-ruke</t></w>
<w><t>pe-rus-a-ble</t></w>
-<w><t>pe-rus-al</t></w>
+<w><t>pe-rus-al</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pe-ruse</t></w>
<w><t>pe-rused</t></w>
<w><t>pe-rus-er</t></w>
@@ -120970,7 +120979,7 @@
<w><t>play-clothes</t></w>
<w><t>play-day</t></w>
<w><t>play-down</t></w>
-<w><t>play-er</t></w>
+<w><t>play-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Play-er</t></w>
<phrase><t>play-er pi-an-o</t></phrase>
<w><t>play-fel-low</t></w>
@@ -123399,7 +123408,7 @@
<w><t>prac-tic-er</t></w>
<w><t>prac-tic-ing</t></w>
<w><t>prac-ti-cum</t></w>
-<w><t>prac-tise</t></w>
+<w><t>prac-tise</t><verb><regular-root/></verb></w>
<w><t>prac-tised</t></w>
<w><t>prac-ti-tion-er</t></w>
<w><t>prad</t></w>
@@ -123445,7 +123454,7 @@
<w><t>prahm</t></w>
<w><t>pra-hu</t></w>
<w><t>Prai-ri-al</t></w>
-<w><t>prai-rie</t></w>
+<w><t>prai-rie</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>prai-rie chick-en</t></phrase>
<phrase><t>prai-rie dog</t></phrase>
<phrase><t>prai-rie oys-ter</t></phrase>
@@ -123938,7 +123947,7 @@
<w><t>pre-cept</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pre-cep-tive</t></w>
<w><t>pre-cep-tive-ly</t></w>
-<w><t>pre-cep-tor</t></w>
+<w><t>pre-cep-tor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pre-cep-to-ri-al-ly</t></w>
<w><t>pre-cep-tor-ship</t></w>
<w><t>pre-cep-to-ry</t></w>
@@ -127662,7 +127671,7 @@
<w><t>Pro-dro-mi-a</t></w>
<w><t>pro-duce</t><verb><regular-root/></verb></w>
<w><t>pro-duced</t></w>
-<w><t>pro-duc-er</t></w>
+<w><t>pro-duc-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>pro-duc-er gas</t></phrase>
<phrase><t>pro-duc-er goods</t></phrase>
<phrase><t>pro-duc-er’s goods</t></phrase>
@@ -127778,7 +127787,8 @@
<w><t>pro-fit-er-ole</t></w>
<w><t>prof-it-shar-ing</t></w>
<w><t>prof-it=shar-ing</t></w>
-<w><t>prof-li-gate</t></w>
+<w><t>prof-li-ga-cy</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>prof-li-gate</t><adjective/></w>
<w><t>prof-li-gate-ly</t></w>
<w><t>prof-li-gate-ness</t></w>
<w><t>pro=Flor-en-tine</t></w>
@@ -128420,7 +128430,8 @@
<w><t>pro-scrib-er</t></w>
<w><t>pro-scrib-ing</t></w>
<w><t>pro-scrip-tion</t></w>
-<w><t>pro-scrip-tive-ly</t></w>
+<w><t>pro-scrip-tive</t><adjective/></w>
+<w><t>pro-scrip-tive-ly</t><adverb/></w>
<w><t>pro=Scrip-tur-al</t></w>
<w><t>pro=Scrip-ture</t></w>
<w><t>prose</t></w>
@@ -130818,7 +130829,7 @@
<w><t>quar-ter=hoop</t></w>
<phrase><t>quar-ter horse</t></phrase>
<w><t>quar-ter=hour</t></w>
-<w><t>quar-ter-ing</t></w>
+<w><t>quar-ter-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>quar-ter-light</t></w>
<w><t>quar-ter-ly</t></w>
<w><t>quar-ter-mas-ter</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -131847,7 +131858,7 @@
<w><t>quirt</t></w>
<w><t>quis-ling</t></w>
<w><t>quist</t></w>
-<w><t>quit</t></w>
+<w><t>quit</t><verb><regular-root value="false"/></verb></w>
<w><t>quitch</t></w>
<w><t>quit-claim</t></w>
<w><t>quite</t></w>
@@ -131856,6 +131867,7 @@
<w><t>quits</t></w>
<w><t>quit-ta-ble</t></w>
<w><t>quit-tance</t></w>
+<w><t>quit-ting</t><verb><lemma>quit</lemma></verb></w>
<w><t>quit-tor</t></w>
<w><t>quiv-er</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>quiv-er-er</t></w>
@@ -132035,7 +132047,7 @@
<w><t>rack</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>rack=and=pin-ion</t></w>
<w><t>rack-board</t></w>
-<w><t>rack-et</t></w>
+<w><t>rack-et</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>rack-et-eer</t></w>
<w><t>rack-et-like</t></w>
<phrase><t>rack-et press</t></phrase>
@@ -132322,7 +132334,7 @@
<w><t>ra-ia</t></w>
<w><t>raid</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>raid-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
-<w><t>rail</t></w>
+<w><t>rail</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>rail-car</t></w>
<w><t>rail-er</t></w>
<w><t>rail-head</t></w>
@@ -132651,7 +132663,7 @@
<w><t>rap-pelled</t></w>
<w><t>rap-pel-ling</t></w>
<w><t>rap-per</t></w>
-<w><t>rap-ping</t></w>
+<w><t>rap-ping</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Rapp-ist</t></w>
<w><t>rap-port</t></w>
<w><t>rap-por-teur</t></w>
@@ -132808,7 +132820,7 @@
<w><t>ra-ti-oc-i-nat-ing</t></w>
<w><t>ra-ti-oc-i-na-tion</t></w>
<w><t>ra-ti-oc-i-na-tor</t></w>
-<w><t>ra-tion</t></w>
+<w><t>ra-tion</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>ra-tion-al</t></w>
<w><t>ra-tion-ale</t></w>
<w><t>ra-tion-al-ise</t></w>
@@ -133758,7 +133770,7 @@
<w><t>reck-on</t><verb><regular-root/></verb></w>
<w><t>reck-on-a-ble</t></w>
<w><t>reck-on-er</t></w>
-<w><t>reck-on-ing</t></w>
+<w><t>reck-on-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>re-clad</t></w>
<w><t>re-claim</t><verb><regular-root/></verb></w>
<w><t>re-claim-a-ble</t></w>
@@ -134697,7 +134709,7 @@
<w><t>re-ën-list</t></w>
<w><t>re-en-list-ment</t></w>
<w><t>re-ën-list-ment</t></w>
-<w><t>re=en-list-ment</t></w>
+<w><t>re=en-list-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>re-en-slave</t></w>
<w><t>re-en-slaved</t></w>
<w><t>re-en-slav-ing</t></w>
@@ -135718,7 +135730,7 @@
<w><t>re-ju-ve-nize</t></w>
<w><t>re-ju-ve-nized</t></w>
<w><t>re-ju-ve-niz-ing</t></w>
-<w><t>re-kin-dle</t></w>
+<w><t>re-kin-dle</t><verb><regular-root/></verb></w>
<w><t>re-knead</t></w>
<w><t>re-knit</t></w>
<w><t>re-knit-ted</t></w>
@@ -137383,6 +137395,8 @@
<w><t>re-strict-ed-ly</t></w>
<w><t>re-strict-ed-ness</t></w>
<w><t>re-stric-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>re-stric-tion-ism</t><noun><singular/><convertible-to-possessive/></noun></w>
+<w><t>re-stric-tion-ist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>re-stric-tive</t></w>
<w><t>re-stric-tive-ly</t></w>
<w><t>re-stric-tive-ness</t></w>
@@ -138120,7 +138134,7 @@
<w><t>rev-o-lu-tion-ise</t></w>
<w><t>rev-o-lu-tion-ised</t></w>
<w><t>rev-o-lu-tion-is-ing</t></w>
-<w><t>rev-o-lu-tion-ist</t></w>
+<w><t>rev-o-lu-tion-ist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>rev-o-lu-tion-ize</t></w>
<w><t>rev-o-lu-tion-ized</t></w>
<w><t>rev-o-lu-tion-iz-er</t></w>
@@ -138690,9 +138704,9 @@
<w><t>ri-gau-don</t></w>
<w><t>Ri-gel</t></w>
<w><t>rig-ger</t></w>
-<w><t>rig-ging</t></w>
+<w><t>rig-ging</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>rig-ging loft</t></phrase>
-<w><t>right</t></w>
+<w><t>right</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>right-a-ble</t></w>
<w><t>right-a-bout</t></w>
<phrase><t>right a-bout</t></phrase>
@@ -139657,7 +139671,7 @@
<w><t>Ros-kil-de</t></w>
<w><t>Ros-lyn</t></w>
<w><t>ROSPA</t></w>
-<w><t>Ross</t></w>
+<w><t>Ross</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ross</t></w>
<phrase><t>Ross and Crom-ar-ty</t></phrase>
<phrase><t>Ross De-pend-en-cy</t></phrase>
@@ -140169,7 +140183,7 @@
<w><t>rule</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>rul-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Rules</t></w>
-<w><t>rul-ing</t></w>
+<w><t>rul-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Rum</t></w>
<w><t>rum</t></w>
<w><t>ru-mal</t></w>
@@ -142447,7 +142461,7 @@
<w><t>Schi-pa</t></w>
<w><t>schip-per-ke</t></w>
<w><t>Schip-pers</t></w>
-<w><t>schism</t></w>
+<w><t>schism</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>schis-mat-ic</t></w>
<w><t>schis-mat-i-cal</t></w>
<w><t>schism-less</t></w>
@@ -142854,7 +142868,7 @@
<w><t>scot</t></w>
<w><t>Scot</t></w>
<w><t>Scotch</t></w>
-<w><t>scotch</t></w>
+<w><t>scotch</t><verb><regular-root/></verb><adjective/></w>
<w><t>Scotch=I-rish</t></w>
<w><t>Scotch-man</t></w>
<phrase><t>Scotch pan-cake</t></phrase>
@@ -142867,7 +142881,7 @@
<w><t>Sco-tist</t></w>
<w><t>Sco-tis-tic</t></w>
<w><t>Sco-tis-ti-cal</t></w>
-<w><t>Scot-land</t></w>
+<w><t>Scot-land</t><noun><convertible-to-possessive/></noun></w>
<phrase><t>Scot-land Yard</t></phrase>
<w><t>Scot-mas</t></w>
<w><t>Scot-ma-ta</t></w>
@@ -142946,7 +142960,7 @@
<w><t>scrap</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>scrap-a-ble</t></w>
<w><t>scrap-book</t></w>
-<w><t>scrape</t></w>
+<w><t>scrape</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>scrape-age</t></w>
<w><t>scrap-er</t></w>
<w><t>scrap-er-board</t></w>
@@ -146538,7 +146552,7 @@
<w><t>Shan-ka-ra-char-ya</t></w>
<w><t>shank-piece</t></w>
<phrase><t>shanks’s po-ny</t></phrase>
-<w><t>Shan-non</t></w>
+<w><t>Shan-non</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Shan-non-town</t></w>
<w><t>shan-ny</t></w>
<w><t>Shan-si</t></w>
@@ -149003,7 +149017,7 @@
<w><t>sleep-wear</t></w>
<w><t>sleep-y</t></w>
<w><t>sleep-y-head</t></w>
-<w><t>sleet</t></w>
+<w><t>sleet</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>sleet-i-er</t></w>
<w><t>sleet-i-est</t></w>
<w><t>sleet-i-ness</t></w>
@@ -151435,8 +151449,8 @@
<w><t>Spe-nard</t></w>
<w><t>Spen-bor-ough</t></w>
<w><t>spence</t></w>
-<w><t>Spence</t></w>
-<w><t>Spen-cer</t></w>
+<w><t>Spence</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>Spen-cer</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>spen-cer</t></w>
<phrase><t>Spen-cer Gulf</t></phrase>
<w><t>Spen-ce-ri-an</t></w>
@@ -152410,7 +152424,7 @@
<w><t>squam-u-lose</t></w>
<w><t>squan-der</t><verb><regular-root/></verb></w>
<w><t>squar-a-ble</t></w>
-<w><t>square</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>square</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<phrase><t>square a-way</t></phrase>
<w><t>square=bash-ing</t></w>
<phrase><t>square brack-et</t></phrase>
@@ -153363,7 +153377,7 @@
<w><t>sten-o</t></w>
<w><t>sten-o-cho-ric</t></w>
<w><t>sten-o-graph</t></w>
-<w><t>ste-nog-ra-pher</t></w>
+<w><t>ste-nog-ra-pher</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>sten-o-graph-ic</t></w>
<w><t>ste-nog-ra-phist</t></w>
<w><t>ste-nog-ra-phy</t></w>
@@ -156305,7 +156319,7 @@
<w><t>sub-til-iz-ing</t></w>
<w><t>sub-ti-tle</t></w>
<w><t>sub-tit-u-lar</t></w>
-<w><t>sub-tle</t></w>
+<w><t>sub-tle</t><adjective><extensible/></adjective></w>
<w><t>sub-tle-ness</t></w>
<w><t>sub-tle-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>sub-tly</t></w>
@@ -158336,10 +158350,9 @@
<w><t>sur-ly</t></w>
<w><t>sur-mis-a-ble</t></w>
<w><t>sur-mise</t><verb><regular-root/></verb></w>
-<w><t>sûr-mised</t></w>
<w><t>sur-mised-ly</t></w>
<w><t>sur-mis-er</t></w>
-<w><t>sûr-mis-ing</t></w>
+<w><t>sur-mis-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>sur-mount</t><verb><regular-root/></verb></w>
<w><t>sur-mount-a-ble</t></w>
<w><t>sur-mount-a-ble-ness</t></w>
@@ -158456,7 +158469,7 @@
<phrase><t>sus-pense ac-count</t></phrase>
<w><t>sus-pen-si-bil-i-ty</t></w>
<w><t>sus-pen-si-ble</t></w>
-<w><t>sus-pen-sion</t></w>
+<w><t>sus-pen-sion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>sus-pen-sion bridge</t></phrase>
<phrase><t>sus-pen-sion point</t></phrase>
<w><t>sus-pen-sive</t></w>
@@ -158670,10 +158683,11 @@
<w><t>Swa-zi-land</t></w>
<phrase><t>Swa-zi Ter-ri-to-ry</t></phrase>
<w><t>sweal</t></w>
-<w><t>swear</t></w>
+<w><t>swear</t><verb><regular-root value="false"/></verb></w>
<w><t>swear-er</t></w>
<w><t>swear-ing</t></w>
<w><t>swear-ing-ly</t></w>
+<w><t>swears</t><verb><lemma>swear</lemma></verb></w>
<w><t>swear-word</t></w>
<w><t>sweat</t></w>
<w><t>sweat-band</t></w>
@@ -160032,7 +160046,7 @@
<w><t>Tan-djung-pri-ok</t></w>
<w><t>Tan-door-i</t></w>
<w><t>Ta-ne</t></w>
-<w><t>Ta-ney</t></w>
+<w><t>Ta-ney</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>tang</t></w>
<w><t>Tang</t></w>
<w><t>Tan-ga</t></w>
@@ -160196,7 +160210,7 @@
<w><t>tap-sie=tee-rie</t></w>
<w><t>tap-ster</t></w>
<phrase><t>tap wa-ter</t></phrase>
-<w><t>tar</t></w>
+<w><t>tar</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Tar-a</t></w>
<phrase><t>Ta-ra-bu-lus el Gharb</t></phrase>
<phrase><t>Ta-ra-bu-lus esh Sham</t></phrase>
@@ -162338,7 +162352,7 @@
<w><t>think-a-ble</t></w>
<w><t>think-a-ble-ness</t></w>
<w><t>think-a-bly</t></w>
-<w><t>think-er</t></w>
+<w><t>think-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>think-ing</t></w>
<w><t>think-ing-ly</t></w>
<phrase><t>think o-ver</t></phrase>
@@ -163081,7 +163095,7 @@
<w><t>Til-la-mook</t></w>
<w><t>til-lands-i-a</t></w>
<w><t>til-land-si-a</t></w>
-<w><t>till-er</t></w>
+<w><t>till-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>till-er-man</t></w>
<w><t>Til-li</t></w>
<w><t>Til-lich</t></w>
@@ -163149,8 +163163,8 @@
<w><t>time-sav-er</t></w>
<w><t>time-sav-ing</t></w>
<phrase><t>time se-ries</t></phrase>
-<w><t>time-serv-er</t></w>
-<w><t>time-serv-ing</t></w>
+<w><t>time=serv-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>time=serv-ing</t><adjective/></w>
<w><t>time-serv-ing-ness</t></w>
<phrase><t>time shar-ing</t></phrase>
<w><t>time=shar-ing</t></w>
@@ -163297,7 +163311,7 @@
<w><t>tip-pi-er</t></w>
<w><t>tip-pi-est</t></w>
<w><t>tip-ping</t></w>
-<w><t>tip-ple</t></w>
+<w><t>tip-ple</t><verb><regular-root/></verb></w>
<w><t>tip-pler</t></w>
<w><t>tip-py</t></w>
<w><t>tip-si-er</t></w>
@@ -164108,7 +164122,7 @@
<w><t>to-rus</t></w>
<w><t>to-ry</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>To-ry-ish</t></w>
-<w><t>To-ry-ism</t></w>
+<w><t>to-ry-ism</t><noun><singular/><convertible-to-possessive/></noun></w>
<w><t>tos</t></w>
<w><t>Tos-ca</t></w>
<w><t>Tos-ca-na</t></w>
@@ -164401,7 +164415,7 @@
<w><t>trach-y-toid</t></w>
<w><t>trac-ing</t></w>
<phrase><t>trac-ing pa-per</t></phrase>
-<w><t>track</t></w>
+<w><t>track</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>track-a-ble</t></w>
<w><t>track-er</t></w>
<phrase><t>track-ing sta-tion</t></phrase>
@@ -165225,7 +165239,7 @@
<phrase><t>trea-ty port</t></phrase>
<w><t>Treb-bia</t></w>
<w><t>Treb-i-zond</t></w>
-<w><t>tre-ble</t></w>
+<w><t>tre-ble</t><verb><regular-root/></verb></w>
<phrase><t>tre-ble chance</t></phrase>
<phrase><t>tre-ble clef</t></phrase>
<w><t>Tre-blin-ka</t></w>
@@ -165517,7 +165531,7 @@
<w><t>trick-si-er</t></w>
<w><t>trick-si-est</t></w>
<w><t>trick-some</t></w>
-<w><t>trick-ster</t></w>
+<w><t>trick-ster</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>trick-ster-ing</t></w>
<w><t>trick-sy</t></w>
<w><t>trick-track</t></w>
@@ -166470,7 +166484,7 @@
<w><t>Tu-cu-mán</t></w>
<w><t>Tu-cum-car-i</t></w>
<w><t>tu-cu-tu-cu</t></w>
-<w><t>Tu-dor</t></w>
+<w><t>Tu-dor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Tues</t></w>
<w><t>Tues-day</t></w>
<w><t>Tues-days</t></w>
@@ -168803,7 +168817,8 @@
<w><t>un-cav-il-ling</t></w>
<w><t>un-cav-i-tied</t></w>
<w><t>un-ceased</t></w>
-<w><t>un-ceas-ing</t></w>
+<w><t>un-ceas-ing</t><adjective></adjective></w>
+<w><t>un-ceas-ing-ly</t><adverb/></w>
<w><t>un-ced-ed</t></w>
<w><t>un-ceil-inged</t></w>
<w><t>un-cel-e-brat-ed</t></w>
@@ -168956,7 +168971,7 @@
<w><t>un-chopped</t></w>
<w><t>un-cho-sen</t></w>
<w><t>un-chris-tened</t></w>
-<w><t>un-chris-tian</t></w>
+<w><t>un-chris-tian</t><adjective/></w>
<w><t>un=Chris-tian-ise</t></w>
<w><t>un=Chris-tian-ised</t></w>
<w><t>un=Chris-tian-is-ing</t></w>
@@ -168964,6 +168979,7 @@
<w><t>un=Chris-tian-ized</t></w>
<w><t>un=Chris-tian-iz-ing</t></w>
<w><t>un=Chris-tian-like</t></w>
+<w><t>un-chris-tian-ly</t><adverb/></w>
<w><t>un=Chris-tian-ly</t></w>
<w><t>un=Christ-mas-like</t></w>
<w><t>un-chro-mat-ic</t></w>
@@ -169102,6 +169118,7 @@
<w><t>un-clutched</t></w>
<w><t>un-clut-ter</t></w>
<w><t>un-clut-tered</t></w>
+<w><t>un-co</t><adjective/><comment>Archaic "unknown" or "uncouth"</comment></w>
<w><t>un-coach-a-ble</t></w>
<w><t>un-coached</t></w>
<w><t>un-co-ag-u-la-ble</t></w>
@@ -170232,7 +170249,7 @@
<w><t>un-der-em-ployed</t></w>
<w><t>un-der-em-ploy-ment</t></w>
<w><t>un-der-en-grav-er</t></w>
-<w><t>un-der-es-ti-mate</t></w>
+<w><t>un-der-es-ti-mate</t><verb><regular-root/></verb></w>
<w><t>un-der-ex-er-cise</t></w>
<w><t>un-der-ex-er-cised</t></w>
<w><t>un-der-ex-er-cis-ing</t></w>
@@ -170391,8 +170408,9 @@
<w><t>un-der-let</t></w>
<w><t>un-der-lev-el</t></w>
<w><t>un-der-lid</t></w>
-<w><t>un-der-lie</t></w>
+<w><t>un-der-lie</t><verb/></w>
<w><t>un-der-li-er</t></w>
+<w><t>un-der-lies</t><verb><lemma>underlie</lemma></verb></w>
<w><t>un-der-lieu-ten-ant</t></w>
<w><t>un-der-life</t></w>
<w><t>un-der-lift</t></w>
@@ -172773,7 +172791,8 @@
<w><t>un-grab-bing</t></w>
<w><t>un-graced</t></w>
<w><t>un-grace-ful</t></w>
-<w><t>un-gra-cious-ly</t></w>
+<w><t>un-gra-cious</t><adjective/></w>
+<w><t>un-gra-cious-ly</t><adverb/></w>
<w><t>un-gra-cious-ness</t></w>
<w><t>un-gra-dat-ed</t></w>
<w><t>un-gra-dat-ing</t></w>
@@ -176666,7 +176685,8 @@
<w><t>un-re-strain-ed-ly</t></w>
<w><t>un-re-straint</t></w>
<w><t>un-re-strict-a-ble</t></w>
-<w><t>un-re-strict-ed</t></w>
+<w><t>un-re-strict-ed</t><adjective/></w>
+<w><t>un-re-strict-ed-ly</t><adverb/></w>
<w><t>un-re-stric-tive</t></w>
<w><t>un-re-sumed</t></w>
<w><t>un-re-sump-tive</t></w>
@@ -179436,7 +179456,8 @@
<w><t>un-yearned</t></w>
<w><t>un-yearn-ing</t></w>
<w><t>un-yield-ed</t></w>
-<w><t>un-yield-ing</t></w>
+<w><t>un-yield-ing</t><adjective/></w>
+<w><t>un-yield-ing-ly</t><adverb/></w>
<w><t>un-yoke</t></w>
<w><t>un-youth-ful</t></w>
<w><t>un-zeal-ous</t></w>
@@ -181522,7 +181543,7 @@
<w><t>Vi-ë-tor</t></w>
<w><t>view</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>view-a-ble</t></w>
-<w><t>view-er</t></w>
+<w><t>view-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>view-find-er</t></w>
<phrase><t>view hal-loo</t></phrase>
<w><t>view-i-er</t></w>
@@ -181942,7 +181963,7 @@
<w><t>vis-is-ing</t></w>
<w><t>vis-it</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
...
[truncated message content] |
|
From: <vic...@us...> - 2024-06-26 17:27:35
|
Revision: 13345
http://sourceforge.net/p/foray/code/13345
Author: victormote
Date: 2024-06-26 17:27:32 +0000 (Wed, 26 Jun 2024)
Log Message:
-----------
Rough-in handling of new "marker" element.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-26 17:05:18 UTC (rev 13344)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-26 17:27:32 UTC (rev 13345)
@@ -98,7 +98,7 @@
public class SpellChecker extends SaxParser<Object> {
/**
- * Stores axsl-spell-check-input, text, word, and foreign elements.
+ * Stores "axsl-spell-check-input", "text", "word", and "foreign" elements.
*/
private final class TextElement extends Element {
@@ -114,9 +114,6 @@
/** The value parsed from an "xpath" attribute, if any. */
private String xpath;
- /** The value parsed from a "marker" attribute, if any. */
- private String marker;
-
/**
* Constructor.
* @param namespace The namespace URI, if specified.
@@ -135,7 +132,7 @@
}
/**
- * Stores flow elements.
+ * Stores "flow" elements.
*/
private final class FlowElement extends Element {
@@ -154,6 +151,26 @@
}
+ /**
+ * Stores "marker" elements.
+ */
+ private final class MarkerElement extends Element {
+
+ /** The value of the marker. */
+ private String value;
+
+ /**
+ * Constructor.
+ * @param namespace The namespace URI, if specified.
+ * @param localName The local name, if specified.
+ * @param qName The qualified name, if specified.
+ */
+ MarkerElement(final String namespace, final String localName, final String qName) {
+ super(namespace, localName, qName);
+ }
+
+ }
+
/** Command-line status constant indicating that the command line itself was not properly formed. */
public static final byte STATUS_COMMAND_LINE_ERROR = 1;
@@ -178,6 +195,9 @@
/** The "name" attribute. */
private static final DtdAttribute NAME_ATTRIBUTE = new DtdAttribute("", "name");
+ /** The "value" attribute. */
+ private static final DtdAttribute VALUE_ATTRIBUTE = new DtdAttribute("", "value");
+
/** The output stream to which the output should be sent. */
private PrintStream output;
@@ -184,6 +204,9 @@
/** The element stack. */
private Stack<Element> elementStack = new Stack<Element>();
+ /** The marker element is orthogonal to the other elements, and therefore is stored outside of the stack. */
+ private MarkerElement lastMarkerElement;
+
/** The Orthography server. */
private OrthographyServer4a server;
@@ -322,6 +345,11 @@
createAndPushTextElement(uri, localName, qName, attributes);
break;
}
+ case ("marker"): {
+ this.lastMarkerElement = new MarkerElement(uri, localName, qName);
+ this.lastMarkerElement.value = VALUE_ATTRIBUTE.getValue(attributes);
+ break;
+ }
case ("axsl-spell-check-input"): {
createAndPushTextElement(uri, localName, qName, attributes);
break;
@@ -366,9 +394,15 @@
}
final WritingSystem4a oldWritingSystem = getCurrentWritingSystem();
- final Element element = this.elementStack.pop();
- if (! element.matches(uri, localName, qName)) {
- throw new SAXException("Closing element does not match top of stack.");
+ final Element element;
+ if ("marker".equals(localName)) {
+ /* The "marker" element did not go on the stack. Don't pop it or check it. */
+ element = null;
+ } else {
+ element = this.elementStack.pop();
+ if (! element.matches(uri, localName, qName)) {
+ throw new SAXException("Closing element does not match top of stack.");
+ }
}
switch (localName) {
@@ -395,7 +429,11 @@
checkWords(textElement);
break;
}
+ case ("marker"): {
+ break;
+ }
case ("flow"): {
+ this.lastMarkerElement = null;
break;
}
case ("axsl-spell-check-input"): {
@@ -494,20 +532,20 @@
}
final String xpath;
- if (element.xpath != null) {
+ if (element.xpath == null) {
+ xpath = StringUtils.EMPTY_STRING;
+ } else {
xpath = String.format(" (xpath: %s)", element.xpath);
- } else {
- xpath = StringUtils.EMPTY_STRING;
}
final String marker;
- if (element.marker != null) {
- marker = String.format(" (marker: %s)", element.marker);
+ if (this.lastMarkerElement == null) {
+ marker = StringUtils.EMPTY_STRING;
} else {
- marker = StringUtils.EMPTY_STRING;
+ marker = String.format(" (marker: %s)", this.lastMarkerElement.value);
}
- final String message = String.format("Not found: {%s} {%s} %s%s%s",
+ final String message = String.format("Not found: {%s} {%s} %s%s%s%s",
flowElement.name,
token.getWritingSystem().toString(),
token.getText(),
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-06-26 17:05:21
|
Revision: 13344
http://sourceforge.net/p/foray/code/13344
Author: victormote
Date: 2024-06-26 17:05:18 +0000 (Wed, 26 Jun 2024)
Log Message:
-----------
Style changes only.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-26 16:57:23 UTC (rev 13343)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-26 17:05:18 UTC (rev 13344)
@@ -333,7 +333,7 @@
break;
}
default: {
- throw new SAXException("Unexpected element: " + localName);
+ throw new SAXException("Unexpected start element: " + localName);
}
}
}
@@ -371,27 +371,40 @@
throw new SAXException("Closing element does not match top of stack.");
}
- /* Tokenize the Word element manually. */
- if ("word".equals(localName)) {
- /* Any text before this "word" element should have been processed in startElement. What is in the text
- * buffer right now should be exactly the content of the "word" element. */
+ switch (localName) {
+ case ("word"): {
+ /* Tokenize the Word element manually. Any text before this "word" element should have been processed in
+ * startElement. What is in the text buffer right now should be exactly the content of the "word"
+ * element. */
final String text = getAndClearText();
lexer.addWordToken(text, oldWritingSystem);
+ break;
}
- if ("foreign".equals(localName)) {
+ case ("foreign"): {
/* Any text before this "foreign" element should have been processed in startElement. What is in the text
* buffer right now should be exactly the content of the "foreign" element. */
final String text = getAndClearText();
lexer.addUntokenized(text, oldWritingSystem);
+ break;
}
-
- /* We are at the end of a terminal element. Check the spelling. */
- if ("text".equals(localName)) {
+ case ("text"): {
+ /* We are at the end of a terminal element. Check the spelling. */
final String text = getAndClearText();
lexer.addUntokenized(text, oldWritingSystem);
final TextElement textElement = (TextElement) element;
checkWords(textElement);
+ break;
}
+ case ("flow"): {
+ break;
+ }
+ case ("axsl-spell-check-input"): {
+ break;
+ }
+ default: {
+ throw new SAXException("Unexpected end element: " + localName);
+ }
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-06-26 16:57:26
|
Revision: 13343
http://sourceforge.net/p/foray/code/13343
Author: victormote
Date: 2024-06-26 16:57:23 +0000 (Wed, 26 Jun 2024)
Log Message:
-----------
1. Move inside class "Element" to a first-class class. 2. Handle new "flow" element in the spell-checking.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Added Paths:
-----------
trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/
trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/Element.java
trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/package-info.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-26 13:09:44 UTC (rev 13342)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-26 16:57:23 UTC (rev 13343)
@@ -29,7 +29,6 @@
package org.foray.orthography.util;
import org.foray.common.i18n.WritingSystem4a;
-import org.foray.common.primitive.ObjectUtils;
import org.foray.orthography.Lexer4a;
import org.foray.orthography.Orthography4a;
import org.foray.orthography.Orthography4aStandard;
@@ -43,6 +42,7 @@
import org.foray.xml.SaxParser;
import org.foray.xml.SaxUtils;
import org.foray.xml.dtd.DtdAttribute;
+import org.foray.xml.parse.Element;
import org.axsl.i18n.WritingSystem;
import org.axsl.orthography.Lexer;
@@ -98,19 +98,10 @@
public class SpellChecker extends SaxParser<Object> {
/**
- * An element parsed from the input document.
+ * Stores axsl-spell-check-input, text, word, and foreign elements.
*/
- private final class Element {
+ private final class TextElement extends Element {
- /** The namespace URI, if specified. */
- private String namespace;
-
- /** The local name, if specified. */
- private String localName;
-
- /** The qualified name, if specified. */
- private String qName;
-
/** The writing system specified for this element, if any. */
private WritingSystem4a writingSystem;
@@ -127,26 +118,40 @@
private String marker;
/**
- * Checks whether a set of element descriptor items match this instance.
- * @param namespace The namespace URI.
- * @param localName The local name.
- * @param qName The qualified name.
- * @return True all element descriptor items match this instance.
+ * Constructor.
+ * @param namespace The namespace URI, if specified.
+ * @param localName The local name, if specified.
+ * @param qName The qualified name, if specified.
*/
- boolean matches(final String namespace, final String localName, final String qName) {
- boolean returnValue = true;
- returnValue &= ObjectUtils.safeEquals(namespace, this.namespace);
- returnValue &= ObjectUtils.safeEquals(localName, this.localName);
- returnValue &= ObjectUtils.safeEquals(qName, this.qName);
- return returnValue;
+ TextElement(final String namespace, final String localName, final String qName) {
+ super(namespace, localName, qName);
}
@Override
public String toString() {
- return String.format("Namespace: %1$s, Local Name: %2$s, QName: %3$s, Orthography: %4$s", this.namespace,
- this.localName, this.qName, this.writingSystem);
+ return String.format("Namespace: %1$s, Local Name: %2$s, QName: %3$s, Orthography: %4$s", getNamespace(),
+ getLocalName(), getQName(), this.writingSystem);
}
+ }
+ /**
+ * Stores flow elements.
+ */
+ private final class FlowElement extends Element {
+
+ /** The name of the flow. */
+ private String name;
+
+ /**
+ * Constructor.
+ * @param namespace The namespace URI, if specified.
+ * @param localName The local name, if specified.
+ * @param qName The qualified name, if specified.
+ */
+ FlowElement(final String namespace, final String localName, final String qName) {
+ super(namespace, localName, qName);
+ }
+
}
/** Command-line status constant indicating that the command line itself was not properly formed. */
@@ -170,8 +175,8 @@
/** The "xpath" attribute. */
private static final DtdAttribute XPATH_ATTRIBUTE = new DtdAttribute("", "xpath");
- /** The "marker" attribute. */
- private static final DtdAttribute MARKER_ATTRIBUTE = new DtdAttribute("", "marker");
+ /** The "name" attribute. */
+ private static final DtdAttribute NAME_ATTRIBUTE = new DtdAttribute("", "name");
/** The output stream to which the output should be sent. */
private PrintStream output;
@@ -298,30 +303,60 @@
throws SAXException {
final WritingSystem4a oldWritingSystem = getCurrentWritingSystem();
- if ("word".equals(localName)) {
+ switch (localName) {
+ case ("word"): {
/* Push any existing content to the lexer. */
final String text = getAndClearText();
lexer.addUntokenized(text, oldWritingSystem);
+ createAndPushTextElement(uri, localName, qName, attributes);
+ break;
}
- if ("foreign".equals(localName)) {
+ case ("foreign"): {
/* Push any existing content to the lexer. */
final String text = getAndClearText();
lexer.addUntokenized(text, oldWritingSystem);
+ createAndPushTextElement(uri, localName, qName, attributes);
+ break;
}
+ case ("text"): {
+ createAndPushTextElement(uri, localName, qName, attributes);
+ break;
+ }
+ case ("axsl-spell-check-input"): {
+ createAndPushTextElement(uri, localName, qName, attributes);
+ break;
+ }
+ case ("flow"): {
+ final FlowElement flowElement = new FlowElement(uri, localName, qName);
+ flowElement.name = NAME_ATTRIBUTE.getValue(attributes);
+ this.elementStack.push(flowElement);
+ break;
+ }
+ default: {
+ throw new SAXException("Unexpected element: " + localName);
+ }
+ }
+ }
+ /**
+ * Create a standardized element for text, foreign, and word elements.
+ * @param uri See {@link #startElement(String, String, String, Attributes)}.
+ * @param localName See {@link #startElement(String, String, String, Attributes)}.
+ * @param qName See {@link #startElement(String, String, String, Attributes)}.
+ * @param attributes See {@link #startElement(String, String, String, Attributes)}.
+ */
+ private void createAndPushTextElement(final String uri, final String localName, final String qName,
+ final Attributes attributes) {
final String lineString = LINE_ATTRIBUTE.getValue(attributes);
final String columnString = COLUMN_ATTRIBUTE.getValue(attributes);
- final Element element = new Element();
- element.namespace = uri;
- element.localName = localName;
- element.qName = qName;
+ final TextElement element = new TextElement(uri, localName, qName);
element.writingSystem = parseWritingSystem(attributes);
element.line = lineString == null ? -1 : Integer.parseInt(lineString);
element.column = columnString == null ? -1 : Integer.parseInt(columnString);
element.xpath = XPATH_ATTRIBUTE.getValue(attributes);
- element.marker = MARKER_ATTRIBUTE.getValue(attributes);
this.elementStack.push(element);
+
}
@Override
@@ -354,8 +389,8 @@
if ("text".equals(localName)) {
final String text = getAndClearText();
lexer.addUntokenized(text, oldWritingSystem);
-
- checkWords(element);
+ final TextElement textElement = (TextElement) element;
+ checkWords(textElement);
}
}
@@ -364,7 +399,7 @@
* Iterate the tokens from the Lexer and spell-check the words.
* @param element The element containing the content being tokenized.
*/
- private void checkWords(final Element element) {
+ private void checkWords(final TextElement element) {
this.lexer.lock();
/* Writing system should never be null, but orthography could be. */
@@ -393,7 +428,7 @@
* @param token The word token to be checked.
* @param element The element containing the content being tokenized.
*/
- private void checkWord(final Orthography4a orthography, final Lexer.Token token, final Element element) {
+ private void checkWord(final Orthography4a orthography, final Lexer.Token token, final TextElement element) {
CharSequence text = StringUtils.EMPTY_STRING;
if (orthography == null) {
/* Treat as an error. */
@@ -428,7 +463,10 @@
* @param element The raw element containing {@code token}.
* @return The message to be reported to the user.
*/
- String createNotFoundMessage(final Lexer.Token token, final Element element) {
+ String createNotFoundMessage(final Lexer.Token token, final TextElement element) {
+
+ final FlowElement flowElement = getCurrentFlow();
+
final String lineAndColumn;
if (element.line != -1
| element.column != -1) {
@@ -456,7 +494,8 @@
marker = StringUtils.EMPTY_STRING;
}
- final String message = String.format("Not found: {%s} %s%s%s",
+ final String message = String.format("Not found: {%s} {%s} %s%s%s",
+ flowElement.name,
token.getWritingSystem().toString(),
token.getText(),
lineAndColumn,
@@ -507,8 +546,11 @@
private WritingSystem4a getCurrentWritingSystem() {
for (int index = this.elementStack.size() - 1; index > -1; index --) {
final Element element = this.elementStack.get(index);
- if (element.writingSystem != null) {
- return element.writingSystem;
+ if (element instanceof TextElement) {
+ final TextElement textElement = (TextElement) element;
+ if (textElement.writingSystem != null) {
+ return textElement.writingSystem;
+ }
}
}
return null;
@@ -515,6 +557,20 @@
}
/**
+ * Returns the nearest FlowElement in the element stack (i.e. the top-most one in the stack).
+ * @return the nearest FlowElement in the element stack (i.e. the top-most one in the stack).
+ */
+ private FlowElement getCurrentFlow() {
+ for (int index = this.elementStack.size() - 1; index > -1; index --) {
+ final Element element = this.elementStack.get(index);
+ if (element instanceof FlowElement) {
+ return (FlowElement) element;
+ }
+ }
+ return null;
+ }
+
+ /**
* Returns the command-line options for the {@link #main(String[])} method.
* @return Command-line options.
*/
Added: trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/Element.java
===================================================================
--- trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/Element.java (rev 0)
+++ trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/Element.java 2024-06-26 16:57:23 UTC (rev 13343)
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2024 The FOray Project.
+ * http://www.foray.org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+package org.foray.xml.parse;
+
+import org.foray.common.primitive.ObjectUtils;
+
+/**
+ * Abstract superclass that handles storage of some basic information acquired during SAX processing that needs to be
+ * retained past the SAX events.
+ */
+public class Element {
+
+ /** The namespace URI, if specified. */
+ private String namespace;
+
+ /** The local name, if specified. */
+ private String localName;
+
+ /** The qualified name, if specified. */
+ private String qName;
+
+ /**
+ * Constructor.
+ * @param namespace The namespace URI, if specified.
+ * @param localName The local name, if specified.
+ * @param qName The qualified name, if specified.
+ */
+ public Element(final String namespace, final String localName, final String qName) {
+ this.namespace = namespace;
+ this.localName = localName;
+ this.qName = qName;
+ }
+
+ /**
+ * Returns the namespace URI, if specified.
+ * @return The namespace URI, if specified.
+ */
+ public String getNamespace() {
+ return this.namespace;
+ }
+
+ /**
+ * Returns the local name, if specified.
+ * @return The local name, if specified.
+ */
+ public String getLocalName() {
+ return this.localName;
+ }
+
+ /**
+ * Returns the qualified name, if specified.
+ * @return The qualified name, if specified.
+ */
+ public String getQName() {
+ return this.qName;
+ }
+
+ /**
+ * Checks whether a set of element descriptor items match this instance.
+ * @param namespace The namespace URI.
+ * @param localName The local name.
+ * @param qName The qualified name.
+ * @return True all element descriptor items match this instance.
+ */
+ public boolean matches(final String namespace, final String localName, final String qName) {
+ boolean returnValue = true;
+ returnValue &= ObjectUtils.safeEquals(namespace, this.namespace);
+ returnValue &= ObjectUtils.safeEquals(localName, this.localName);
+ returnValue &= ObjectUtils.safeEquals(qName, this.qName);
+ return returnValue;
+ }
+
+}
Property changes on: trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/Element.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
Added: trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/package-info.java
===================================================================
--- trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/package-info.java (rev 0)
+++ trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/package-info.java 2024-06-26 16:57:23 UTC (rev 13343)
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2024 The FOray Project.
+ * http://www.foray.org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ *
+ * This work is in part derived from the following work(s), used with the
+ * permission of the licensor:
+ * Apache FOP, licensed by the Apache Software Foundation
+ *
+ */
+
+/*
+ * $LastChangedRevision$
+ * $LastChangedDate$
+ * $LastChangedBy$
+ */
+
+/**
+ * Classes useful for parsing XML documents. There is some overlap here with classes in DOM and SAX. The primary use of
+ * these classes is expected to be cases where we are using a SAX parser, but need to retain DOM-like state, but in a
+ * lightweight way.
+ */
+package org.foray.xml.parse;
Property changes on: trunk/foray/foray-xml/src/main/java/org/foray/xml/parse/package-info.java
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Rev
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-06-26 13:09:47
|
Revision: 13342
http://sourceforge.net/p/foray/code/13342
Author: victormote
Date: 2024-06-26 13:09:44 +0000 (Wed, 26 Jun 2024)
Log Message:
-----------
Improve order of constructor parameters.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-26 13:04:23 UTC (rev 13341)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-26 13:09:44 UTC (rev 13342)
@@ -197,8 +197,8 @@
/**
* Constructor.
* @param output The output stream to which the spelling errors should be written.
+ * @param xmlCatalogPath The path to a catalog file to be used for entity resolution.
* @param orthographyConfigPath The path to the orthography configuration.
- * @param xmlCatalogPath The path to a catalog file to be used for entity resolution.
* @param adhocDictionaryPath (optional) Path to an ad-hoc dictionary to be used by the spell-checker.
* This is useful for cases where a document has words that are not found in standard dictionaries.
* This can be null.
@@ -210,7 +210,7 @@
* @throws IOException For input/output errors during parsing.
* @throws SAXException For errors found by the SAX parser.
*/
- public SpellChecker(final PrintStream output, final URL orthographyConfigPath, final String xmlCatalogPath,
+ public SpellChecker(final PrintStream output, final String xmlCatalogPath, final URL orthographyConfigPath,
final URL adhocDictionaryPath, final List<URL> freeDictionaryPaths)
throws OrthographyException, IOException, SAXException {
this.output = output;
@@ -626,7 +626,7 @@
}
final SpellChecker checker =
- new SpellChecker(output, orthographyConfigPath, xmlCatalog, dictionaryUrl, freeDictionaries);
+ new SpellChecker(output, xmlCatalog, orthographyConfigPath, dictionaryUrl, freeDictionaries);
checker.parse(inputSource);
} catch (final OrthographyException | IOException | SAXException | TransformerException e) {
logger.error("Error configuring or running: " + input, e);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-06-26 13:04:26
|
Revision: 13341
http://sourceforge.net/p/foray/code/13341
Author: victormote
Date: 2024-06-26 13:04:23 +0000 (Wed, 26 Jun 2024)
Log Message:
-----------
Add handling for xpath and marker attributes in the intermediate file.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-15 13:38:24 UTC (rev 13340)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-26 13:04:23 UTC (rev 13341)
@@ -88,7 +88,7 @@
import javax.xml.transform.stream.StreamSource;
/**
- * <p>Parses an XML document, looking for spelling errors.
+ * <p>Parses an "axsl-spell-check-input" XML document, looking for spelling errors.
* The specified natural language can change at any time, and must be tracked.
* The general approach is that a generic XML document is passed to this class, along with a stylesheet that converts
* that document's content to an axsl-spell-check-input document.
@@ -99,8 +99,6 @@
/**
* An element parsed from the input document.
- * This class is a SAX parser, but is designed to work with any(???) XML document, and is therefore agnostic about
- * the elements or their content, so we capture that information in this class.
*/
private final class Element {
@@ -116,12 +114,18 @@
/** The writing system specified for this element, if any. */
private WritingSystem4a writingSystem;
- /** The value parsed from a "line" attribute. */
+ /** The value parsed from a "line" attribute, if any. */
private int line;
- /** The value parsed from a "column" attribute. */
+ /** The value parsed from a "column" attribute, if any. */
private int column;
+ /** The value parsed from an "xpath" attribute, if any. */
+ private String xpath;
+
+ /** The value parsed from a "marker" attribute, if any. */
+ private String marker;
+
/**
* Checks whether a set of element descriptor items match this instance.
* @param namespace The namespace URI.
@@ -163,6 +167,12 @@
/** The "column" attribute. */
private static final DtdAttribute COLUMN_ATTRIBUTE = new DtdAttribute("", "column");
+ /** The "xpath" attribute. */
+ private static final DtdAttribute XPATH_ATTRIBUTE = new DtdAttribute("", "xpath");
+
+ /** The "marker" attribute. */
+ private static final DtdAttribute MARKER_ATTRIBUTE = new DtdAttribute("", "marker");
+
/** The output stream to which the output should be sent. */
private PrintStream output;
@@ -309,6 +319,8 @@
element.writingSystem = parseWritingSystem(attributes);
element.line = lineString == null ? -1 : Integer.parseInt(lineString);
element.column = columnString == null ? -1 : Integer.parseInt(columnString);
+ element.xpath = XPATH_ATTRIBUTE.getValue(attributes);
+ element.marker = MARKER_ATTRIBUTE.getValue(attributes);
this.elementStack.push(element);
}
@@ -404,18 +416,56 @@
}
}
- final int actualLine = element.line + token.getLine() - 1;
- int actualColumn = token.getColumn();
- if (token.getLine() == 1) {
- actualColumn += element.column;
- }
- final String message = String.format("Not found: %s (%s:%s) %s", text, actualLine, actualColumn,
- token.getWritingSystem().toString());
+ final String message = createNotFoundMessage(token, element);
this.output.println(message);
this.notFoundCounter ++;
}
+
/**
+ * Creates the text message to be reported to the user if a token is not found.
+ * @param token The token being reported.
+ * @param element The raw element containing {@code token}.
+ * @return The message to be reported to the user.
+ */
+ String createNotFoundMessage(final Lexer.Token token, final Element element) {
+ final String lineAndColumn;
+ if (element.line != -1
+ | element.column != -1) {
+ final int actualLine = element.line + token.getLine() - 1;
+ int actualColumn = token.getColumn();
+ if (token.getLine() == 1) {
+ actualColumn += element.column;
+ }
+ lineAndColumn = String.format(" (%s:%s)", actualLine, actualColumn);
+ } else {
+ lineAndColumn = StringUtils.EMPTY_STRING;
+ }
+
+ final String xpath;
+ if (element.xpath != null) {
+ xpath = String.format(" (xpath: %s)", element.xpath);
+ } else {
+ xpath = StringUtils.EMPTY_STRING;
+ }
+
+ final String marker;
+ if (element.marker != null) {
+ marker = String.format(" (marker: %s)", element.marker);
+ } else {
+ marker = StringUtils.EMPTY_STRING;
+ }
+
+ final String message = String.format("Not found: {%s} %s%s%s",
+ token.getWritingSystem().toString(),
+ token.getText(),
+ lineAndColumn,
+ xpath,
+ marker);
+ return message;
+ }
+
+ /**
* For a given set of attributes, parses the {@link WritingSystem} from them and then checks the {@link Orthography}
* for that {@link WritingSystem}.
* @param attributes The attributes that possibly contain language, country, and script data.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-06-15 13:38:27
|
Revision: 13340
http://sourceforge.net/p/foray/code/13340
Author: victormote
Date: 2024-06-15 13:38:24 +0000 (Sat, 15 Jun 2024)
Log Message:
-----------
Store the line and column info in the element stack instead of globally.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-12 19:03:51 UTC (rev 13339)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-15 13:38:24 UTC (rev 13340)
@@ -116,6 +116,12 @@
/** The writing system specified for this element, if any. */
private WritingSystem4a writingSystem;
+ /** The value parsed from a "line" attribute. */
+ private int line;
+
+ /** The value parsed from a "column" attribute. */
+ private int column;
+
/**
* Checks whether a set of element descriptor items match this instance.
* @param namespace The namespace URI.
@@ -172,12 +178,6 @@
/** The counter for "Not found" words. */
private int notFoundCounter = 0;
- /** The last value parsed from a "line" attribute. */
- private int lastLine;
-
- /** The last value parsed from a "column" attribute. */
- private int lastColumn;
-
/** The entity resolver for locating resources. */
private EntityResolver entityResolver;
@@ -301,15 +301,14 @@
final String lineString = LINE_ATTRIBUTE.getValue(attributes);
final String columnString = COLUMN_ATTRIBUTE.getValue(attributes);
- this.lastLine = lineString == null ? -1 : Integer.parseInt(lineString);
- this.lastColumn = columnString == null ? -1 : Integer.parseInt(columnString);
-
final Element element = new Element();
element.namespace = uri;
element.localName = localName;
element.qName = qName;
element.writingSystem = parseWritingSystem(attributes);
+ element.line = lineString == null ? -1 : Integer.parseInt(lineString);
+ element.column = columnString == null ? -1 : Integer.parseInt(columnString);
this.elementStack.push(element);
}
@@ -344,7 +343,7 @@
final String text = getAndClearText();
lexer.addUntokenized(text, oldWritingSystem);
- checkWords();
+ checkWords(element);
}
}
@@ -351,8 +350,9 @@
/**
* Iterate the tokens from the Lexer and spell-check the words.
+ * @param element The element containing the content being tokenized.
*/
- private void checkWords() {
+ private void checkWords(final Element element) {
this.lexer.lock();
/* Writing system should never be null, but orthography could be. */
@@ -369,7 +369,7 @@
orthography = this.server.getOrthography(token.getWritingSystem());
}
lastWritingSystem = token.getWritingSystem();
- checkWord(orthography, token);
+ checkWord(orthography, token, element);
}
}
lexer.clear();
@@ -379,8 +379,9 @@
* Spell-check a word.
* @param orthography The orthography to be used to spell-check {@code word}.
* @param token The word token to be checked.
+ * @param element The element containing the content being tokenized.
*/
- private void checkWord(final Orthography4a orthography, final Lexer.Token token) {
+ private void checkWord(final Orthography4a orthography, final Lexer.Token token, final Element element) {
CharSequence text = StringUtils.EMPTY_STRING;
if (orthography == null) {
/* Treat as an error. */
@@ -403,10 +404,10 @@
}
}
- final int actualLine = this.lastLine + token.getLine() - 1;
+ final int actualLine = element.line + token.getLine() - 1;
int actualColumn = token.getColumn();
if (token.getLine() == 1) {
- actualColumn += this.lastColumn;
+ actualColumn += element.column;
}
final String message = String.format("Not found: %s (%s:%s) %s", text, actualLine, actualColumn,
token.getWritingSystem().toString());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-06-12 19:03:53
|
Revision: 13339
http://sourceforge.net/p/foray/code/13339
Author: victormote
Date: 2024-06-12 19:03:51 +0000 (Wed, 12 Jun 2024)
Log Message:
-----------
Improvements to location information for spell-checking documents.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Lexer4a.java
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Lexer4a.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Lexer4a.java 2024-06-08 21:31:59 UTC (rev 13338)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Lexer4a.java 2024-06-12 19:03:51 UTC (rev 13339)
@@ -750,6 +750,8 @@
* Create the token list.
*/
protected void createTokens() {
+ this.currentLine = 1;
+ this.currentColumn = 1;
for (int index = 0; index < input.items.size(); index ++) {
final InputItem inputItem = input.items.get(index);
if (inputItem.isWordToken) {
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-08 21:31:59 UTC (rev 13338)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-12 19:03:51 UTC (rev 13339)
@@ -173,10 +173,10 @@
private int notFoundCounter = 0;
/** The last value parsed from a "line" attribute. */
- private String lastLine;
+ private int lastLine;
/** The last value parsed from a "column" attribute. */
- private String lastColumn;
+ private int lastColumn;
/** The entity resolver for locating resources. */
private EntityResolver entityResolver;
@@ -299,8 +299,10 @@
lexer.addUntokenized(text, oldWritingSystem);
}
- this.lastLine = LINE_ATTRIBUTE.getValue(attributes);
- this.lastColumn = COLUMN_ATTRIBUTE.getValue(attributes);
+ final String lineString = LINE_ATTRIBUTE.getValue(attributes);
+ final String columnString = COLUMN_ATTRIBUTE.getValue(attributes);
+ this.lastLine = lineString == null ? -1 : Integer.parseInt(lineString);
+ this.lastColumn = columnString == null ? -1 : Integer.parseInt(columnString);
final Element element = new Element();
@@ -401,7 +403,12 @@
}
}
- final String message = String.format("Not found: %s (%s:%s) %s", text, this.lastLine, this.lastColumn,
+ final int actualLine = this.lastLine + token.getLine() - 1;
+ int actualColumn = token.getColumn();
+ if (token.getLine() == 1) {
+ actualColumn += this.lastColumn;
+ }
+ final String message = String.format("Not found: %s (%s:%s) %s", text, actualLine, actualColumn,
token.getWritingSystem().toString());
this.output.println(message);
this.notFoundCounter ++;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-06-08 21:32:01
|
Revision: 13338
http://sourceforge.net/p/foray/code/13338
Author: victormote
Date: 2024-06-08 21:31:59 +0000 (Sat, 08 Jun 2024)
Log Message:
-----------
Compute the line and column number of each token, relative to the input item container.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Lexer4a.java
trunk/foray/foray-orthography/src/test/java/org/foray/orthography/LexerEnglishTests.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Lexer4a.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Lexer4a.java 2024-06-07 14:11:40 UTC (rev 13337)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Lexer4a.java 2024-06-08 21:31:59 UTC (rev 13338)
@@ -124,9 +124,12 @@
/** Surrogate for {@link TokenType#WORD}. */
WORD(TokenType.WORD),
- /** Surrogate for {@link TokenType#BREAK}. */
- BREAK(TokenType.BREAK),
+ /** Surrogate for {@link TokenType#BREAK} indicating a break between lines. */
+ LINE_BREAK(TokenType.BREAK),
+ /** Surrogate for {@link TokenType#BREAK} indicating a word break that is NOT a line break. */
+ WORD_BREAK(TokenType.BREAK),
+
/** Surrogate for {@link TokenType#LEADING_PUNCTUATION}. */
LEADING_PUNCTUATION(TokenType.LEADING_PUNCTUATION),
@@ -169,6 +172,14 @@
return this.wrappedTokenType;
}
+ /**
+ * Indicates whether this type is derived from {@link TokenType#BREAK}.
+ * @return True if and only if this type is derived from {@link TokenType#BREAK}.
+ */
+ public boolean isBreak() {
+ return getWrappedType() == TokenType.BREAK;
+ }
+
}
/**
@@ -181,6 +192,11 @@
/** The type of break at {@link #offset}. */
private TokenType2 type;
+
+ @Override
+ public String toString() {
+ return offset + ": " + type.toString();
+ }
}
/**
@@ -259,6 +275,9 @@
*/
public class Token4a implements Lexer.Token {
+ /** Format for {@link #toString()}. */
+ private static final String TO_STRING_FORMAT = "(%d, %d, %s) %s";
+
/** The text. */
private CharSequence text;
@@ -268,6 +287,12 @@
/** The writing system. */
private WritingSystem writingSystem;
+ /** The line number (within the tokenizer). */
+ private int line;
+
+ /** The column number (within the tokenizer). */
+ private int column;
+
@Override
public CharSequence getText() {
return this.text;
@@ -279,10 +304,25 @@
}
@Override
+ public int getLine() {
+ return this.line;
+ }
+
+ @Override
+ public int getColumn() {
+ return this.column;
+ }
+
+ @Override
public WritingSystem getWritingSystem() {
return this.writingSystem;
}
+ @Override
+ public String toString() {
+ return String.format(TO_STRING_FORMAT, this.line, this.column, this.type.toString(), this.text);
+ }
+
}
/** Pattern that matches all XML whitespace except the word space itself. */
@@ -291,9 +331,6 @@
/** Indicates whether this lexer is currently locked. */
private boolean isLocked;
-// /** The parent server. */
-// private OrthographyServer4a server;
-
/** The input that has been submitted for processing. */
private Input input = new Input();
@@ -303,6 +340,12 @@
/** The list of output tokens to be returned. */
private List<Token4a> output = new ArrayList<Token4a>();
+ /** The current line (within this Lexer) being processed. */
+ private int currentLine = 1;
+
+ /** The current column (within this Lexer) being processed. */
+ private int currentColumn = 1;
+
/**
* Constructor.
* @param server The parent server.
@@ -495,8 +538,8 @@
* </ul>
*/
private void resolvePossibleIntrawordPunctuation() {
- final TokenType2 preSequenceBreakType = TokenType2.BREAK;
- final TokenType2 postSequenceBreakType = TokenType2.BREAK;
+ final TokenType2 preSequenceBreakType = TokenType2.WORD_BREAK;
+ final TokenType2 postSequenceBreakType = TokenType2.WORD_BREAK;
/* First iterate in reverse order. */
for (int breakIndex = this.input.size() - 1; breakIndex > -1; breakIndex --) {
@@ -524,7 +567,7 @@
/* Look for ambiguous punctuation immediate followed by whitespace and immediately preceded by trailing
* punctuation. Resolve it to trailing punctuation. */
if (currentBreak.type == TokenType2.AMBIGUOUS_TRAILING_PUNCTUATION
- && (nextBreakType == TokenType2.BREAK)
+ && (nextBreakType.isBreak())
&& (previousBreakType == TokenType2.TRAILING_PUNCTUATION
|| previousBreakType == TokenType2.TRANSIENT_TRAILING_PUNCTUATION)) {
currentBreak.type = TokenType2.TRAILING_PUNCTUATION;
@@ -542,9 +585,9 @@
/* If the current type is not a whitespace char, but it is surrounded by whitespace chars, this marks a
* word. */
- if (currentBreak.type != TokenType2.BREAK
- && previousBreakType == TokenType2.BREAK
- && nextBreakType == TokenType2.BREAK) {
+ if (! currentBreak.type.isBreak()
+ && previousBreakType.isBreak()
+ && nextBreakType.isBreak()) {
currentBreak.type = TokenType2.WORD;
}
@@ -570,7 +613,8 @@
currentBreak.type = TokenType2.TRAILING_PUNCTUATION;
break;
}
- case BREAK: {
+ case WORD_BREAK:
+ case LINE_BREAK: {
/* This cannot be trailing punctuation, so must be the first character in a new word, probably a
* contraction like "'tis" for example. */
currentBreak.type = TokenType2.WORD;
@@ -618,8 +662,8 @@
* Resolves attached leading punctuation.
*/
private void resolveAttachedLeadingPunctuation() {
- final TokenType2 preSequenceBreakType = TokenType2.BREAK;
- final TokenType2 postSequenceBreakType = TokenType2.BREAK;
+ final TokenType2 preSequenceBreakType = TokenType2.WORD_BREAK;
+ final TokenType2 postSequenceBreakType = TokenType2.WORD_BREAK;
/* Resolve attached leading punctuation. */
for (int breakIndex = 0; breakIndex < this.input.size(); breakIndex ++) {
final InputBreak currentBreak = this.input.get(breakIndex);
@@ -630,9 +674,11 @@
switch (currentBreak.type) {
case LEADING_PUNCTUATION: {
switch (previousBreakType) {
- case BREAK: {
+ case WORD_BREAK:
+ case LINE_BREAK: {
switch (nextBreakType) {
- case BREAK: {
+ case WORD_BREAK:
+ case LINE_BREAK: {
/* Surrounded by breaks. Treat this as a word. */
currentBreak.type = TokenType2.WORD;
break;
@@ -660,8 +706,8 @@
* Resolves attached trailing punctuation.
*/
private void resolveAttachedTrailingPunctuation() {
- final TokenType2 preSequenceBreakType = TokenType2.BREAK;
- final TokenType2 postSequenceBreakType = TokenType2.BREAK;
+ final TokenType2 preSequenceBreakType = TokenType2.WORD_BREAK;
+ final TokenType2 postSequenceBreakType = TokenType2.WORD_BREAK;
/* Resolve attached trailing punctuation. Iterate these in reverse order. */
for (int breakIndex = this.input.size() - 1; breakIndex > 0; breakIndex --) {
final InputBreak currentBreak = this.input.get(breakIndex);
@@ -672,9 +718,11 @@
switch (currentBreak.type) {
case TRAILING_PUNCTUATION: {
switch (nextBreakType) {
- case BREAK: {
+ case WORD_BREAK:
+ case LINE_BREAK: {
switch (previousBreakType) {
- case BREAK: {
+ case WORD_BREAK:
+ case LINE_BREAK: {
/* Surrounded by breaks. Treat this as a word. */
currentBreak.type = TokenType2.WORD;
break;
@@ -709,6 +757,9 @@
token.text = inputItem.text;
token.type = TokenType.WORD;
token.writingSystem = inputItem.writingSystem;
+ token.line = this.currentLine;
+ token.column = this.currentColumn;
+ this.currentColumn += token.getText().length();
this.output.add(token);
} else {
createComputedTokens(inputItem);
@@ -737,9 +788,16 @@
token.text = inputItem.text.subSequence(nextTokenOffset, currentOffset);
token.type = lastBreakType.wrappedTokenType;
token.writingSystem = inputItem.writingSystem;
+ token.line = this.currentLine;
+ token.column = this.currentColumn;
this.output.add(token);
nextTokenOffset = currentOffset;
+ this.currentColumn += token.getText().length();
}
+ if (lastBreakType == TokenType2.LINE_BREAK) {
+ this.currentLine += 1;
+ this.currentColumn = 1;
+ }
lastBreakType = currentBreakType;
}
}
@@ -784,12 +842,17 @@
/**
* Computes the word-breaking type of a char.
- * @param c The char being tested.
+ * @param c The char being tested. If the application cares about tracking lines and columns, upstream processing
+ * MUST normalize line-ending characters to a single line-feed character.
* @return The word-breaking type of {@code c}.
*/
public TokenType2 computeCharType(final int c) {
if (CharacterUtils.isWordBreakChar(c)) {
- return TokenType2.BREAK;
+ if (c == U0000_Basic_Latin.CONTROL_LINE_FEED) {
+ return TokenType2.LINE_BREAK;
+ } else {
+ return TokenType2.WORD_BREAK;
+ }
}
if (isWordChar(c)) {
return TokenType2.WORD;
Modified: trunk/foray/foray-orthography/src/test/java/org/foray/orthography/LexerEnglishTests.java
===================================================================
--- trunk/foray/foray-orthography/src/test/java/org/foray/orthography/LexerEnglishTests.java 2024-06-07 14:11:40 UTC (rev 13337)
+++ trunk/foray/foray-orthography/src/test/java/org/foray/orthography/LexerEnglishTests.java 2024-06-08 21:31:59 UTC (rev 13338)
@@ -100,12 +100,16 @@
* @param expectedText The expected token text.
* @param expectedType The expected token type.
* @param expectedWritingSystem The expected token writing system.
+ * @param expectedLine The expected line number of the token.
+ * @param expectedColumn The expected column number of the token.
*/
private void testToken(final Token token, final String expectedText, final TokenType expectedType,
- final WritingSystem expectedWritingSystem) {
+ final WritingSystem expectedWritingSystem, final int expectedLine, final int expectedColumn) {
assertEquals(expectedText, token.getText());
assertEquals(expectedType, token.getTokenType());
assertEquals(expectedWritingSystem, token.getWritingSystem());
+ assertEquals(expectedLine, token.getLine());
+ assertEquals(expectedColumn, token.getColumn());
}
/**
@@ -116,16 +120,16 @@
final String testString = "Beware the ides of March.";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(10, actual.size());
- testToken(actual.get(0), "Beware", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "the", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(4), "ides", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(5), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(6), "of", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(8), "March", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(9), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "Beware", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(2), "the", TokenType.WORD, WritingSystem4a.USA, 1, 8);
+ testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 11);
+ testToken(actual.get(4), "ides", TokenType.WORD, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(5), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 16);
+ testToken(actual.get(6), "of", TokenType.WORD, WritingSystem4a.USA, 1, 17);
+ testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 19);
+ testToken(actual.get(8), "March", TokenType.WORD, WritingSystem4a.USA, 1, 20);
+ testToken(actual.get(9), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 25);
}
/**
@@ -136,36 +140,36 @@
final String testString = "39. It was the best of times. It was the worst of times. <----";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(30, actual.size());
- testToken(actual.get(0), "39", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(2), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(3), "It", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(5), "was", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(6), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(7), "the", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(9), "best", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(10), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(11), "of", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(12), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(13), "times", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(14), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(15), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(16), "It", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(17), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(18), "was", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(19), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(20), "the", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(21), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(22), "worst", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(23), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(24), "of", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(25), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(26), "times", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(27), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(28), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(29), "<----", TokenType.WORD, WritingSystem4a.USA);
+ testToken(actual.get(0), "39", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 3);
+ testToken(actual.get(2), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 4);
+ testToken(actual.get(3), "It", TokenType.WORD, WritingSystem4a.USA, 1, 5);
+ testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(5), "was", TokenType.WORD, WritingSystem4a.USA, 1, 8);
+ testToken(actual.get(6), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 11);
+ testToken(actual.get(7), "the", TokenType.WORD, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 15);
+ testToken(actual.get(9), "best", TokenType.WORD, WritingSystem4a.USA, 1, 16);
+ testToken(actual.get(10), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 20);
+ testToken(actual.get(11), "of", TokenType.WORD, WritingSystem4a.USA, 1, 21);
+ testToken(actual.get(12), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 23);
+ testToken(actual.get(13), "times", TokenType.WORD, WritingSystem4a.USA, 1, 24);
+ testToken(actual.get(14), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 29);
+ testToken(actual.get(15), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 30);
+ testToken(actual.get(16), "It", TokenType.WORD, WritingSystem4a.USA, 1, 31);
+ testToken(actual.get(17), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 33);
+ testToken(actual.get(18), "was", TokenType.WORD, WritingSystem4a.USA, 1, 34);
+ testToken(actual.get(19), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 37);
+ testToken(actual.get(20), "the", TokenType.WORD, WritingSystem4a.USA, 1, 38);
+ testToken(actual.get(21), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 41);
+ testToken(actual.get(22), "worst", TokenType.WORD, WritingSystem4a.USA, 1, 42);
+ testToken(actual.get(23), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 47);
+ testToken(actual.get(24), "of", TokenType.WORD, WritingSystem4a.USA, 1, 48);
+ testToken(actual.get(25), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 50);
+ testToken(actual.get(26), "times", TokenType.WORD, WritingSystem4a.USA, 1, 51);
+ testToken(actual.get(27), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 56);
+ testToken(actual.get(28), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 57);
+ testToken(actual.get(29), "<----", TokenType.WORD, WritingSystem4a.USA, 1, 60);
}
/**
@@ -179,17 +183,17 @@
/* Compound word "fiery-footed" treated as one word. */
assertEquals(11, actual.size());
- testToken(actual.get(0), "Gallop", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "apace", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(5), "you", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(6), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(7), "fiery-footed", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(9), "steeds", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(10), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "Gallop", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(2), "apace", TokenType.WORD, WritingSystem4a.USA, 1, 8);
+ testToken(actual.get(3), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 13);
+ testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 14);
+ testToken(actual.get(5), "you", TokenType.WORD, WritingSystem4a.USA, 1, 15);
+ testToken(actual.get(6), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 18);
+ testToken(actual.get(7), "fiery-footed", TokenType.WORD, WritingSystem4a.USA, 1, 19);
+ testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 31);
+ testToken(actual.get(9), "steeds", TokenType.WORD, WritingSystem4a.USA, 1, 32);
+ testToken(actual.get(10), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 38);
}
/**
@@ -201,13 +205,13 @@
final String testString = "The play's the thing";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(7, actual.size());
- testToken(actual.get(0), "The", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "play's", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(4), "the", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(5), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(6), "thing", TokenType.WORD, WritingSystem4a.USA);
+ testToken(actual.get(0), "The", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 4);
+ testToken(actual.get(2), "play's", TokenType.WORD, WritingSystem4a.USA, 1, 5);
+ testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 11);
+ testToken(actual.get(4), "the", TokenType.WORD, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(5), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 15);
+ testToken(actual.get(6), "thing", TokenType.WORD, WritingSystem4a.USA, 1, 16);
}
/**
@@ -219,15 +223,15 @@
final String testString = "! @ # $ %";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(9, actual.size());
- testToken(actual.get(0), "!", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "@", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(4), "#", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(5), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(6), "$", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(8), "%", TokenType.WORD, WritingSystem4a.USA);
+ testToken(actual.get(0), "!", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 2);
+ testToken(actual.get(2), "@", TokenType.WORD, WritingSystem4a.USA, 1, 3);
+ testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 4);
+ testToken(actual.get(4), "#", TokenType.WORD, WritingSystem4a.USA, 1, 5);
+ testToken(actual.get(5), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 6);
+ testToken(actual.get(6), "$", TokenType.WORD, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 8);
+ testToken(actual.get(8), "%", TokenType.WORD, WritingSystem4a.USA, 1, 9);
}
/**
@@ -240,36 +244,36 @@
final String testString = "Parentheses (as I stated earlier) are a matching pair of ( and ) characters.";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(30, actual.size());
- testToken(actual.get(0), "Parentheses", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "(", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(3), "as", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(5), "I", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(6), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(7), "stated", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(9), "earlier", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(10), ")", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(11), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(12), "are", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(13), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(14), "a", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(15), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(16), "matching", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(17), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(18), "pair", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(19), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(20), "of", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(21), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(22), "(", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(23), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(24), "and", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(25), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(26), ")", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(27), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(28), "characters", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(29), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "Parentheses", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(2), "(", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA, 1, 13);
+ testToken(actual.get(3), "as", TokenType.WORD, WritingSystem4a.USA, 1, 14);
+ testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 16);
+ testToken(actual.get(5), "I", TokenType.WORD, WritingSystem4a.USA, 1, 17);
+ testToken(actual.get(6), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 18);
+ testToken(actual.get(7), "stated", TokenType.WORD, WritingSystem4a.USA, 1, 19);
+ testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 25);
+ testToken(actual.get(9), "earlier", TokenType.WORD, WritingSystem4a.USA, 1, 26);
+ testToken(actual.get(10), ")", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 33);
+ testToken(actual.get(11), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 34);
+ testToken(actual.get(12), "are", TokenType.WORD, WritingSystem4a.USA, 1, 35);
+ testToken(actual.get(13), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 38);
+ testToken(actual.get(14), "a", TokenType.WORD, WritingSystem4a.USA, 1, 39);
+ testToken(actual.get(15), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 40);
+ testToken(actual.get(16), "matching", TokenType.WORD, WritingSystem4a.USA, 1, 41);
+ testToken(actual.get(17), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 49);
+ testToken(actual.get(18), "pair", TokenType.WORD, WritingSystem4a.USA, 1, 50);
+ testToken(actual.get(19), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 54);
+ testToken(actual.get(20), "of", TokenType.WORD, WritingSystem4a.USA, 1, 55);
+ testToken(actual.get(21), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 57);
+ testToken(actual.get(22), "(", TokenType.WORD, WritingSystem4a.USA, 1, 58);
+ testToken(actual.get(23), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 59);
+ testToken(actual.get(24), "and", TokenType.WORD, WritingSystem4a.USA, 1, 60);
+ testToken(actual.get(25), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 63);
+ testToken(actual.get(26), ")", TokenType.WORD, WritingSystem4a.USA, 1, 64);
+ testToken(actual.get(27), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 65);
+ testToken(actual.get(28), "characters", TokenType.WORD, WritingSystem4a.USA, 1, 66);
+ testToken(actual.get(29), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 76);
}
/**
@@ -282,29 +286,29 @@
final String testString = "The quick (“brown”) fox can’t jump 32.3 feet, right?";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(23, actual.size());
- testToken(actual.get(0), "The", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "quick", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(4), "(", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(5), "“", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(6), "brown", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(7), "”", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(8), ")", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(9), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(10), "fox", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(11), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(12), "can’t", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(13), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(14), "jump", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(15), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(16), "32.3", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(17), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(18), "feet", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(19), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(20), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(21), "right", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(22), "?", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "The", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 4);
+ testToken(actual.get(2), "quick", TokenType.WORD, WritingSystem4a.USA, 1, 5);
+ testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 10);
+ testToken(actual.get(4), "(", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA, 1, 11);
+ testToken(actual.get(5), "“", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(6), "brown", TokenType.WORD, WritingSystem4a.USA, 1, 13);
+ testToken(actual.get(7), "”", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 18);
+ testToken(actual.get(8), ")", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 19);
+ testToken(actual.get(9), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 20);
+ testToken(actual.get(10), "fox", TokenType.WORD, WritingSystem4a.USA, 1, 21);
+ testToken(actual.get(11), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 24);
+ testToken(actual.get(12), "can’t", TokenType.WORD, WritingSystem4a.USA, 1, 25);
+ testToken(actual.get(13), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 30);
+ testToken(actual.get(14), "jump", TokenType.WORD, WritingSystem4a.USA, 1, 31);
+ testToken(actual.get(15), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 35);
+ testToken(actual.get(16), "32.3", TokenType.WORD, WritingSystem4a.USA, 1, 36);
+ testToken(actual.get(17), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 40);
+ testToken(actual.get(18), "feet", TokenType.WORD, WritingSystem4a.USA, 1, 41);
+ testToken(actual.get(19), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 45);
+ testToken(actual.get(20), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 46);
+ testToken(actual.get(21), "right", TokenType.WORD, WritingSystem4a.USA, 1, 47);
+ testToken(actual.get(22), "?", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 52);
}
/**
@@ -315,10 +319,10 @@
final String testString = "Appendix D.4)";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(4, actual.size());
- testToken(actual.get(0), "Appendix", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "D.4", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), ")", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "Appendix", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 9);
+ testToken(actual.get(2), "D.4", TokenType.WORD, WritingSystem4a.USA, 1, 10);
+ testToken(actual.get(3), ")", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 13);
}
/**
@@ -329,11 +333,11 @@
final String testString = "every creature.”";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(5, actual.size());
- testToken(actual.get(0), "every", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "creature", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(4), "”", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "every", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 6);
+ testToken(actual.get(2), "creature", TokenType.WORD, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(3), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 15);
+ testToken(actual.get(4), "”", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 16);
}
/**
@@ -344,12 +348,12 @@
final String testString = "“Go ye into";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(6, actual.size());
- testToken(actual.get(0), "“", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(1), "Go", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(2), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(3), "ye", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(5), "into", TokenType.WORD, WritingSystem4a.USA);
+ testToken(actual.get(0), "“", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), "Go", TokenType.WORD, WritingSystem4a.USA, 1, 2);
+ testToken(actual.get(2), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 4);
+ testToken(actual.get(3), "ye", TokenType.WORD, WritingSystem4a.USA, 1, 5);
+ testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(5), "into", TokenType.WORD, WritingSystem4a.USA, 1, 8);
}
/**
@@ -360,16 +364,16 @@
final String testString = "for every [student]. Return";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(10, actual.size());
- testToken(actual.get(0), "for", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "every", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(4), "[", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(5), "student", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(6), "]", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(7), ".", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(9), "Return", TokenType.WORD, WritingSystem4a.USA);
+ testToken(actual.get(0), "for", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 4);
+ testToken(actual.get(2), "every", TokenType.WORD, WritingSystem4a.USA, 1, 5);
+ testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 10);
+ testToken(actual.get(4), "[", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA, 1, 11);
+ testToken(actual.get(5), "student", TokenType.WORD, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(6), "]", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 19);
+ testToken(actual.get(7), ".", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 20);
+ testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 21);
+ testToken(actual.get(9), "Return", TokenType.WORD, WritingSystem4a.USA, 1, 22);
}
/**
@@ -380,18 +384,18 @@
final String testString = "’Tis the season to be jolly.";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(12, actual.size());
- testToken(actual.get(0), "’Tis", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "the", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(4), "season", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(5), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(6), "to", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(8), "be", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(9), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(10), "jolly", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(11), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "’Tis", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 5);
+ testToken(actual.get(2), "the", TokenType.WORD, WritingSystem4a.USA, 1, 6);
+ testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 9);
+ testToken(actual.get(4), "season", TokenType.WORD, WritingSystem4a.USA, 1, 10);
+ testToken(actual.get(5), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 16);
+ testToken(actual.get(6), "to", TokenType.WORD, WritingSystem4a.USA, 1, 17);
+ testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 19);
+ testToken(actual.get(8), "be", TokenType.WORD, WritingSystem4a.USA, 1, 20);
+ testToken(actual.get(9), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 22);
+ testToken(actual.get(10), "jolly", TokenType.WORD, WritingSystem4a.USA, 1, 23);
+ testToken(actual.get(11), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 28);
}
/**
@@ -404,17 +408,17 @@
final String testString = "Letter, &c.,\nat large;";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(11, actual.size());
- testToken(actual.get(0), "Letter", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(2), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(3), "&c", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(4), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(5), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(6), "\n", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(7), "at", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(9), "large", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(10), ";", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "Letter", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(2), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 8);
+ testToken(actual.get(3), "&c", TokenType.WORD, WritingSystem4a.USA, 1, 9);
+ testToken(actual.get(4), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 11);
+ testToken(actual.get(5), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(6), "\n", TokenType.BREAK, WritingSystem4a.USA, 1, 13);
+ testToken(actual.get(7), "at", TokenType.WORD, WritingSystem4a.USA, 2, 1);
+ testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA, 2, 3);
+ testToken(actual.get(9), "large", TokenType.WORD, WritingSystem4a.USA, 2, 4);
+ testToken(actual.get(10), ";", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 2, 9);
}
/**
@@ -425,27 +429,27 @@
final String testString = "To be, i.e. to exist, or not to be.";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(21, actual.size());
- testToken(actual.get(0), "To", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "be", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(5), "i.e", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(6), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(8), "to", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(9), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(10), "exist", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(11), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(12), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(13), "or", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(14), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(15), "not", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(16), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(17), "to", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(18), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(19), "be", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(20), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "To", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 3);
+ testToken(actual.get(2), "be", TokenType.WORD, WritingSystem4a.USA, 1, 4);
+ testToken(actual.get(3), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 6);
+ testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(5), "i.e", TokenType.WORD, WritingSystem4a.USA, 1, 8);
+ testToken(actual.get(6), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 11);
+ testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(8), "to", TokenType.WORD, WritingSystem4a.USA, 1, 13);
+ testToken(actual.get(9), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 15);
+ testToken(actual.get(10), "exist", TokenType.WORD, WritingSystem4a.USA, 1, 16);
+ testToken(actual.get(11), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 21);
+ testToken(actual.get(12), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 22);
+ testToken(actual.get(13), "or", TokenType.WORD, WritingSystem4a.USA, 1, 23);
+ testToken(actual.get(14), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 25);
+ testToken(actual.get(15), "not", TokenType.WORD, WritingSystem4a.USA, 1, 26);
+ testToken(actual.get(16), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 29);
+ testToken(actual.get(17), "to", TokenType.WORD, WritingSystem4a.USA, 1, 30);
+ testToken(actual.get(18), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 32);
+ testToken(actual.get(19), "be", TokenType.WORD, WritingSystem4a.USA, 1, 33);
+ testToken(actual.get(20), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 35);
}
/**
@@ -456,29 +460,29 @@
final String testString = "To be, (i.e. to exist,) or not to be.";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(23, actual.size());
- testToken(actual.get(0), "To", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "be", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(5), "(", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(6), "i.e", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(7), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(9), "to", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(10), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(11), "exist", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(12), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(13), ")", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(14), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(15), "or", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(16), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(17), "not", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(18), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(19), "to", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(20), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(21), "be", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(22), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "To", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 3);
+ testToken(actual.get(2), "be", TokenType.WORD, WritingSystem4a.USA, 1, 4);
+ testToken(actual.get(3), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 6);
+ testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(5), "(", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA, 1, 8);
+ testToken(actual.get(6), "i.e", TokenType.WORD, WritingSystem4a.USA, 1, 9);
+ testToken(actual.get(7), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 13);
+ testToken(actual.get(9), "to", TokenType.WORD, WritingSystem4a.USA, 1, 14);
+ testToken(actual.get(10), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 16);
+ testToken(actual.get(11), "exist", TokenType.WORD, WritingSystem4a.USA, 1, 17);
+ testToken(actual.get(12), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 22);
+ testToken(actual.get(13), ")", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 23);
+ testToken(actual.get(14), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 24);
+ testToken(actual.get(15), "or", TokenType.WORD, WritingSystem4a.USA, 1, 25);
+ testToken(actual.get(16), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 27);
+ testToken(actual.get(17), "not", TokenType.WORD, WritingSystem4a.USA, 1, 28);
+ testToken(actual.get(18), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 31);
+ testToken(actual.get(19), "to", TokenType.WORD, WritingSystem4a.USA, 1, 32);
+ testToken(actual.get(20), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 34);
+ testToken(actual.get(21), "be", TokenType.WORD, WritingSystem4a.USA, 1, 35);
+ testToken(actual.get(22), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 37);
}
/**
@@ -489,13 +493,13 @@
final String testString = "Mr. P.’s hat.";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(7, actual.size());
- testToken(actual.get(0), "Mr", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(2), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(3), "P.’s", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(5), "hat", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(6), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "Mr", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 3);
+ testToken(actual.get(2), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 4);
+ testToken(actual.get(3), "P.’s", TokenType.WORD, WritingSystem4a.USA, 1, 5);
+ testToken(actual.get(4), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 9);
+ testToken(actual.get(5), "hat", TokenType.WORD, WritingSystem4a.USA, 1, 10);
+ testToken(actual.get(6), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 13);
}
/**
@@ -509,18 +513,18 @@
out.addUntokenized(" was nice.", WritingSystem4a.USA);
final List<Lexer.Token> actual = tokenize();
assertEquals(12, actual.size());
- testToken(actual.get(0), "The", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "trip", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(4), "to", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(5), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(6), "São Paulo", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(8), "was", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(9), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(10), "nice", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(11), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "The", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 4);
+ testToken(actual.get(2), "trip", TokenType.WORD, WritingSystem4a.USA, 1, 5);
+ testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 9);
+ testToken(actual.get(4), "to", TokenType.WORD, WritingSystem4a.USA, 1, 10);
+ testToken(actual.get(5), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(6), "São Paulo", TokenType.WORD, WritingSystem4a.USA, 1, 13);
+ testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 22);
+ testToken(actual.get(8), "was", TokenType.WORD, WritingSystem4a.USA, 1, 23);
+ testToken(actual.get(9), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 26);
+ testToken(actual.get(10), "nice", TokenType.WORD, WritingSystem4a.USA, 1, 27);
+ testToken(actual.get(11), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 31);
}
/**
@@ -532,23 +536,23 @@
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(17, actual.size());
- testToken(actual.get(0), "Noble", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "gases", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(4), "(", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(5), "neon", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(6), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(8), "etc", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(9), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(10), ")", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(11), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(12), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(13), "are", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(14), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(15), "inert", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(16), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "Noble", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 6);
+ testToken(actual.get(2), "gases", TokenType.WORD, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 12);
+ testToken(actual.get(4), "(", TokenType.LEADING_PUNCTUATION, WritingSystem4a.USA, 1, 13);
+ testToken(actual.get(5), "neon", TokenType.WORD, WritingSystem4a.USA, 1, 14);
+ testToken(actual.get(6), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 18);
+ testToken(actual.get(7), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 19);
+ testToken(actual.get(8), "etc", TokenType.WORD, WritingSystem4a.USA, 1, 20);
+ testToken(actual.get(9), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 23);
+ testToken(actual.get(10), ")", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 24);
+ testToken(actual.get(11), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 25);
+ testToken(actual.get(12), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 26);
+ testToken(actual.get(13), "are", TokenType.WORD, WritingSystem4a.USA, 1, 27);
+ testToken(actual.get(14), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 30);
+ testToken(actual.get(15), "inert", TokenType.WORD, WritingSystem4a.USA, 1, 31);
+ testToken(actual.get(16), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 36);
}
/**
@@ -559,17 +563,17 @@
final String testString = "Sydney is -33.865143, 151.209900 lat-long.";
final List<Lexer.Token> actual = tokenize(testString);
assertEquals(11, actual.size());
- testToken(actual.get(0), "Sydney", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(2), "is", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(4), "-33.865143", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(5), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA);
- testToken(actual.get(6), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(7), "151.209900", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA);
- testToken(actual.get(9), "lat-long", TokenType.WORD, WritingSystem4a.USA);
- testToken(actual.get(10), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA);
+ testToken(actual.get(0), "Sydney", TokenType.WORD, WritingSystem4a.USA, 1, 1);
+ testToken(actual.get(1), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 7);
+ testToken(actual.get(2), "is", TokenType.WORD, WritingSystem4a.USA, 1, 8);
+ testToken(actual.get(3), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 10);
+ testToken(actual.get(4), "-33.865143", TokenType.WORD, WritingSystem4a.USA, 1, 11);
+ testToken(actual.get(5), ",", TokenType.TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 21);
+ testToken(actual.get(6), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 22);
+ testToken(actual.get(7), "151.209900", TokenType.WORD, WritingSystem4a.USA, 1, 23);
+ testToken(actual.get(8), " ", TokenType.BREAK, WritingSystem4a.USA, 1, 33);
+ testToken(actual.get(9), "lat-long", TokenType.WORD, WritingSystem4a.USA, 1, 34);
+ testToken(actual.get(10), ".", TokenType.AMBIGUOUS_TRAILING_PUNCTUATION, WritingSystem4a.USA, 1, 42);
}
/**
@@ -582,17 +586,17 @@
final List<Lexer.Token> actual = tokenize(testString);...
[truncated message content] |
|
From: <vic...@us...> - 2024-06-07 14:11:44
|
Revision: 13337
http://sourceforge.net/p/foray/code/13337
Author: victormote
Date: 2024-06-07 14:11:40 +0000 (Fri, 07 Jun 2024)
Log Message:
-----------
Split tracking of location information into its components.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-07 13:54:27 UTC (rev 13336)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-07 14:11:40 UTC (rev 13337)
@@ -172,9 +172,12 @@
/** The counter for "Not found" words. */
private int notFoundCounter = 0;
- /** The last value parsed from a "location" attribute. */
- private String lastLocation;
+ /** The last value parsed from a "line" attribute. */
+ private String lastLine;
+ /** The last value parsed from a "column" attribute. */
+ private String lastColumn;
+
/** The entity resolver for locating resources. */
private EntityResolver entityResolver;
@@ -296,10 +299,10 @@
lexer.addUntokenized(text, oldWritingSystem);
}
- final String line = LINE_ATTRIBUTE.getValue(attributes);
- final String column = COLUMN_ATTRIBUTE.getValue(attributes);
- this.lastLocation = line == null ? "N/A" : line + ":" + column;
+ this.lastLine = LINE_ATTRIBUTE.getValue(attributes);
+ this.lastColumn = COLUMN_ATTRIBUTE.getValue(attributes);
+
final Element element = new Element();
element.namespace = uri;
element.localName = localName;
@@ -339,7 +342,7 @@
final String text = getAndClearText();
lexer.addUntokenized(text, oldWritingSystem);
- checkWords(this.lastLocation);
+ checkWords();
}
}
@@ -346,9 +349,8 @@
/**
* Iterate the tokens from the Lexer and spell-check the words.
- * @param location The location of the text in the original document.
*/
- private void checkWords(final String location) {
+ private void checkWords() {
this.lexer.lock();
/* Writing system should never be null, but orthography could be. */
@@ -365,7 +367,7 @@
orthography = this.server.getOrthography(token.getWritingSystem());
}
lastWritingSystem = token.getWritingSystem();
- checkWord(orthography, token, location);
+ checkWord(orthography, token);
}
}
lexer.clear();
@@ -375,9 +377,8 @@
* Spell-check a word.
* @param orthography The orthography to be used to spell-check {@code word}.
* @param token The word token to be checked.
- * @param location The location of the word in the original document.
*/
- private void checkWord(final Orthography4a orthography, final Lexer.Token token, final String location) {
+ private void checkWord(final Orthography4a orthography, final Lexer.Token token) {
CharSequence text = StringUtils.EMPTY_STRING;
if (orthography == null) {
/* Treat as an error. */
@@ -400,7 +401,7 @@
}
}
- final String message = String.format("Not found: %s (%s) %s", text, location,
+ final String message = String.format("Not found: %s (%s:%s) %s", text, this.lastLine, this.lastColumn,
token.getWritingSystem().toString());
this.output.println(message);
this.notFoundCounter ++;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-06-07 13:54:30
|
Revision: 13336
http://sourceforge.net/p/foray/code/13336
Author: victormote
Date: 2024-06-07 13:54:27 +0000 (Fri, 07 Jun 2024)
Log Message:
-----------
Adapt to aXSL change providing more explicit location information.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-06 22:23:04 UTC (rev 13335)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-06-07 13:54:27 UTC (rev 13336)
@@ -151,9 +151,12 @@
/** The "xml:lang" attribute. */
private static final DtdAttribute XML_LANG_ATTRIBUTE = new DtdAttribute(XMLConstants.XML_NS_URI, "lang");
- /** The "location" attribute. */
- private static final DtdAttribute LOCATION_ATTRIBUTE = new DtdAttribute("", "location");
+ /** The "line" attribute. */
+ private static final DtdAttribute LINE_ATTRIBUTE = new DtdAttribute("", "line");
+ /** The "column" attribute. */
+ private static final DtdAttribute COLUMN_ATTRIBUTE = new DtdAttribute("", "column");
+
/** The output stream to which the output should be sent. */
private PrintStream output;
@@ -293,8 +296,9 @@
lexer.addUntokenized(text, oldWritingSystem);
}
- final String location = LOCATION_ATTRIBUTE.getValue(attributes);
- this.lastLocation = location == null ? "N/A" : location;
+ final String line = LINE_ATTRIBUTE.getValue(attributes);
+ final String column = COLUMN_ATTRIBUTE.getValue(attributes);
+ this.lastLocation = line == null ? "N/A" : line + ":" + column;
final Element element = new Element();
element.namespace = uri;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-06-06 22:23:06
|
Revision: 13335
http://sourceforge.net/p/foray/code/13335
Author: victormote
Date: 2024-06-06 22:23:04 +0000 (Thu, 06 Jun 2024)
Log Message:
-----------
Allow spaces in most English-Latin patterns, to properly handle open compound words.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/data/orthographies/foray-orthography-config.xml
Modified: trunk/foray/foray-orthography/src/main/data/orthographies/foray-orthography-config.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/orthographies/foray-orthography-config.xml 2024-05-21 16:55:22 UTC (rev 13334)
+++ trunk/foray/foray-orthography/src/main/data/orthographies/foray-orthography-config.xml 2024-06-06 22:23:04 UTC (rev 13335)
@@ -42,7 +42,7 @@
<derivative-pattern-list id="eng-Latn-derivative-patterns">
<derivative-pattern desc="ends with /’s/">
- <match>^([a-zæœëöA-ZÆŒ\-‘’]+)’s$</match>
+ <match>^([a-zæœëöA-ZÆŒ\-‘’ ]+)’s$</match>
<replace>$1</replace>
<derivative-rule>
<noun><convertible-to-possessive/></noun>
@@ -50,7 +50,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-ies/, stem ends with /y/">
- <match>^([a-zæœëöA-ZÆŒ\-‘’]+)ies$</match>
+ <match>^([a-zæœëöA-ZÆŒ\-‘’ ]+)ies$</match>
<replace>$1y</replace>
<derivative-rule>
<noun><pluralizable/></noun>
@@ -66,7 +66,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-ied/, stem ends with /y/">
- <match>^([a-zæœëöA-ZÆŒ\-‘’]+)ied$</match>
+ <match>^([a-zæœëöA-ZÆŒ\-‘’ ]+)ied$</match>
<replace>$1y</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -75,7 +75,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-es/, stem ends with s-like sound">
- <match>^([a-zæœëöA-ZÆŒ\-‘’]+)([sxz]|sh|ch)es$</match>
+ <match>^([a-zæœëöA-ZÆŒ\-‘’ ]+)([sxz]|sh|ch)es$</match>
<replace>$1$2</replace>
<derivative-rule>
<noun><pluralizable/></noun>
@@ -111,7 +111,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with certain double consonants, then /-ed/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)([bcdfgklmnprstvz])(\2)ed$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)([bcdfgklmnprstvz])(\2)ed$</match>
<replace>$1$2</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -120,7 +120,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-ed/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)ed$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)ed$</match>
<replace>$1</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -129,7 +129,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-d/, stem ends with silent /-e/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+e)d$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+e)d$</match>
<replace>$1</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -138,7 +138,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with certain double consonants, then /-ing/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)([bcdfgklmnprstvz])(\2)ing$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)([bcdfgklmnprstvz])(\2)ing$</match>
<replace>$1$2</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -146,7 +146,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-ing/, stem ends with silent /e/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)ing$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)ing$</match>
<replace>$1e</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -154,7 +154,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-ing/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)ing$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)ing$</match>
<replace>$1</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -162,7 +162,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-er/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)er$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)er$</match>
<replace>$1</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -170,7 +170,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-est/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)est$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)est$</match>
<replace>$1</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -178,7 +178,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-er/, root ends in /-e/, e.g. noble">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+e)r$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+e)r$</match>
<replace>$1</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -186,7 +186,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-est/, root ends in /-e/, e.g. noble">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+e)st$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+e)st$</match>
<replace>$1</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -194,7 +194,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with certain double consonants, then /-er/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)([d])(\2)er$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)([d])(\2)er$</match>
<replace>$1$2</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -202,7 +202,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with certain double consonants, then /-est/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)([d])(\2)est$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)([d])(\2)est$</match>
<replace>$1$2</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -210,7 +210,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-ier/, root ends with /-y/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)ier$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)ier$</match>
<replace>$1y</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -218,7 +218,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-iest/, root ends with /-y/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)iest$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)iest$</match>
<replace>$1y</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -229,7 +229,7 @@
<derivative-pattern-list id="fre-Latn-derivative-patterns">
<derivative-pattern desc="ends with /-s/">
- <match>^([a-zæœëéöA-ZÆŒ\-‘’]+)s$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-‘’ ]+)s$</match>
<replace>$1</replace>
<derivative-rule>
<noun><pluralizable/></noun>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-05-21 16:55:27
|
Revision: 13334
http://sourceforge.net/p/foray/code/13334
Author: victormote
Date: 2024-05-21 16:55:22 +0000 (Tue, 21 May 2024)
Log Message:
-----------
Improvements to dictionaries and orthographies.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/data/dictionaries/arc-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-theology.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/fre-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/grc-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/heb-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/ita-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/arc-Latn-ZZZ.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/arc-Latn-ZZZ.dict.xml 2024-05-10 16:59:52 UTC (rev 13333)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/arc-Latn-ZZZ.dict.xml 2024-05-21 16:55:22 UTC (rev 13334)
@@ -14,6 +14,7 @@
-->
+<w><t>A-cel-da-ma</t></w>
<w><t>E-li</t></w>
<w><t>la-ma</t></w>
<w><t>Paresin</t></w>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml 2024-05-10 16:59:52 UTC (rev 13333)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml 2024-05-21 16:55:22 UTC (rev 13334)
@@ -84,6 +84,8 @@
<w><t>rig-our</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<word-placeholder><t>ru-mor</t><different-country country="USA"/></word-placeholder>
<w><t>ru-mour</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<word-placeholder><t>smolder</t><different-country country="USA"/></word-placeholder>
+<w><t>smoul-der</t><verb><regular-root/></verb></w>
<word-placeholder><t>superior</t><different-country country="USA"/></word-placeholder>
<w><t>su-pe-ri-our</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective/></w>
</axsl-dictionary>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml 2024-05-10 16:59:52 UTC (rev 13333)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml 2024-05-21 16:55:22 UTC (rev 13334)
@@ -83,6 +83,8 @@
<w><t>rig-or</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ru-mor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<word-placeholder><t>ru-mour</t><different-country country="GBR"/></word-placeholder>
+<w><t>smol-der</t><verb><regular-root/></verb></w>
+<word-placeholder><t>smoulder</t><different-country country="GBR"/></word-placeholder>
<w><t>su-pe-ri-or</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective/></w>
<word-placeholder><t>superiour</t><different-country country="GBR"/></word-placeholder>
</axsl-dictionary>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml 2024-05-10 16:59:52 UTC (rev 13333)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml 2024-05-21 16:55:22 UTC (rev 13334)
@@ -22,6 +22,7 @@
<w><t>be-liev-eth</t></w>
<w><t>brig-a-dier=gen-er-al</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bring-eth</t><verb><lemma>bring</lemma></verb></w>
+<w><t>buy-eth</t><verb/></w>
<w><t>Car-tha-gen-i-an</t><noun><pluralizable/><convertible-to-possessive/></noun><comment>Carthaginian.</comment></w>
<w><t>caus-eth</t><verb><lemma>cause</lemma></verb></w>
<w><t>ceil</t><verb><regular-root/></verb></w>
@@ -34,7 +35,9 @@
<w><t>com-mand-eth</t></w>
<w><t>comp-trol</t><verb><regular-root/></verb></w>
<w><t>comp-trol-ler=gen-er-al</t><verb><regular-root/></verb></w>
+<w><t>con-sid-er-eth</t><verb/></w>
<w><t>couldst</t></w>
+<w><t>cri-eth</t><verb/></w>
<w><t>de-sir-edst</t><verb><lemma>desire</lemma></verb></w>
<w><t>dis-pro-por-tion</t><verb><regular-root/></verb></w>
<w><t>dream-ing</t><noun><pluralizable/></noun></w>
@@ -47,6 +50,7 @@
<w><t>ex-pound-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>ex-ult-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>fad-eth</t><verb><lemma>fade</lemma></verb></w>
+<w><t>faint-eth</t><verb/></w>
<w><t>fear-eth</t><verb><lemma>fear</lemma></verb></w>
<w><t>find-eth</t><verb><lemma>find</lemma></verb></w>
<w><t>Flor-i-das</t><noun><plural/></noun></w>
@@ -69,6 +73,7 @@
<w><t>li-eth</t><verb><lemma>lie</lemma></verb></w>
<w><t>liv-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>lo</t><interjection/><comment>Imperative of "look".</comment></w>
+<w><t>long-eth</t><verb/></w>
<w><t>lov-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>ma-jor=gen-er-al</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>mak-eth</t><verb><lemma>make</lemma></verb></w>
@@ -91,6 +96,7 @@
<w><t>oth-er-ways</t><adjective/><adverb/></w>
<w><t>o-ver-com-eth</t><verb><lemma>overcome</lemma></verb></w>
<w><t>per-suad-est</t><verb><regular-root value="false"/></verb></w>
+<w><t>plant-eth</t><verb/></w>
<w><t>pre-ëm-i-nence</t></w>
<w><t>pre-ëm-i-nent-ly</t><adverb/></w>
<w><t>pro-nounc-eth</t><verb><regular-root value="false"/></verb></w>
@@ -115,9 +121,11 @@
<w><t>sanc-ti-fi-eth</t><verb><lemma>sanctify</lemma></verb></w>
<w><t>se-cret</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb><adjective/></w>
<w><t>seek-est</t><verb><regular-root value="false"/></verb></w>
+<w><t>seem-eth</t><verb/></w>
<w><t>se-lect-edst</t><verb><lemma>select</lemma></verb></w>
<w><t>shew</t><verb/></w>
<w><t>shewn</t><verb><lemma>shew</lemma></verb></w>
+<w><t>shin-eth</t><verb/></w>
<w><t>show-eth</t><verb><lemma>show</lemma></verb></w>
<w><t>sin-neth</t></w>
<w><t>sleep-est</t><verb><regular-root value="false"/></verb></w>
@@ -130,6 +138,7 @@
<w><t>un-ap-prized</t></w>
<w><t>un-lade</t><verb><regular-root/></verb></w>
<w><t>vis-it-est</t></w>
+<w><t>wak-eth</t><verb/></w>
<w><t>walk-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>wa-ter-eth</t><verb><lemma>water</lemma></verb></w>
<w><t>whig-gish</t></w>
@@ -136,5 +145,6 @@
<w><t>whig-gism</t></w>
<w><t>wip-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>work-eth</t><verb><lemma>work</lemma></verb></w>
+<w><t>yield-eth</t><verb/></w>
</axsl-dictionary>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-theology.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-theology.dict.xml 2024-05-10 16:59:52 UTC (rev 13333)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-theology.dict.xml 2024-05-21 16:55:22 UTC (rev 13334)
@@ -107,6 +107,7 @@
<w><t>Kit-tel</t><noun><convertible-to-possessive/></noun><comment>Author.</comment></w>
<w><t>KJV</t><abbrev referenced-word="King James Version"/></w>
<w><t>La-se-a</t><noun/></w>
+<w><t>Lem-u-el</t><noun><convertible-to-possessive/></noun></w>
<w><t>long-suf-fer-ing</t><adjective/><comment>Used in KJV, but hyphenated in modern dictionaries.</comment></w>
<w><t>lost-ness</t><noun/></w>
<w><t>Lys-tra</t><noun/></w>
@@ -187,6 +188,7 @@
<w><t>un-re-deemed</t></w>
<w><t>U-phar-sin</t><noun/></w>
<w><t>Ur</t><noun/></w>
+<w><t>Uz</t><noun/></w>
<w><t>Wal-voord</t><noun/><comment>Author.</comment></w>
<w><t>works=o-ri-ent-ed</t><adjective/></w>
<w><t>WWJD</t><abbrev referenced-word="What Would Jesus Do"/></w>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml 2024-05-10 16:59:52 UTC (rev 13333)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml 2024-05-21 16:55:22 UTC (rev 13334)
@@ -124,7 +124,7 @@
<w><t>a-based</t></w>
<w><t>a-base-ment</t></w>
<w><t>a-bas-er</t></w>
-<w><t>a-bash</t></w>
+<w><t>a-bash</t><verb><regular-root/></verb></w>
<w><t>a-bash-ed-ly</t></w>
<w><t>a-bash-ed-ness</t></w>
<w><t>a-bash-ment</t></w>
@@ -797,7 +797,7 @@
<w><t>ac-cel-er-a-tor</t></w>
<w><t>ac-cel-er-a-to-ry</t></w>
<w><t>ac-cel-er-om-e-ter</t></w>
-<w><t>ac-cent</t></w>
+<w><t>ac-cent</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>ac-cent-less</t></w>
<w><t>ac-cen-tor</t></w>
<w><t>ac-cen-tu-a-ble</t></w>
@@ -1152,7 +1152,7 @@
<w><t>A-char-ni-ans</t></w>
<w><t>A-cha-tes</t></w>
<w><t>A-chaz</t></w>
-<w><t>ache</t></w>
+<w><t>ache</t><noun><pluralizable/></noun><verb><regular-root/></verb></w>
<w><t>a-chech</t></w>
<w><t>a-chei-la-ry</t></w>
<w><t>Ach-e-lo-us</t></w>
@@ -2616,7 +2616,7 @@
<phrase><t>af-faire d’hon-neur</t></phrase>
<w><t>af-fairs</t></w>
<w><t>af-fect</t><verb><regular-root/></verb></w>
-<w><t>af-fec-ta-tion</t></w>
+<w><t>af-fec-ta-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>af-fect-ed</t></w>
<w><t>af-fect-ed-ly</t></w>
<w><t>af-fect-ed-ness</t></w>
@@ -2975,7 +2975,7 @@
<w><t>ag-gra-vated</t></w>
<w><t>ag-gra-vat-ing</t></w>
<w><t>ag-gra-vat-ing-ly</t></w>
-<w><t>ag-gra-va-tion</t></w>
+<w><t>ag-gra-va-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ag-gra-va-tive</t></w>
<w><t>ag-gra-va-tor</t></w>
<w><t>ag-gre-ga-ble</t></w>
@@ -4555,7 +4555,7 @@
<w><t>al-pha</t></w>
<w><t>Al-pha</t></w>
<phrase><t>al-pha and o-me-ga</t></phrase>
-<w><t>al-pha-bet</t></w>
+<w><t>al-pha-bet</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>al-pha-bet-ic</t></w>
<w><t>al-pha-bet-i-cal</t></w>
<w><t>al-pha-bet-i-cal-ly</t></w>
@@ -4834,7 +4834,7 @@
<w><t>a-mate</t></w>
<w><t>a-mat-ed</t></w>
<w><t>A-ma-te-ra-su</t></w>
-<w><t>am-a-teur</t></w>
+<w><t>am-a-teur</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective></adjective></w>
<w><t>am-a-teur-ish</t></w>
<w><t>am-a-teur-ish-ly</t></w>
<w><t>am-a-teur-ish-ness</t></w>
@@ -4985,7 +4985,7 @@
<w><t>am-bu-la-tion</t></w>
<w><t>am-bu-la-tor</t></w>
<w><t>am-bu-la-to-ry</t></w>
-<w><t>am-bus-cade</t></w>
+<w><t>am-bus-cade</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>am-bus-cad-ed</t></w>
<w><t>am-bus-cad-er</t></w>
<w><t>am-bus-cad-ing</t></w>
@@ -6446,7 +6446,7 @@
<w><t>an-i-mist</t></w>
<w><t>an-i-mis-tic</t></w>
<w><t>an-i-mos-i-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
-<w><t>an-i-mus</t></w>
+<w><t>an-i-mus</t><noun><singular/></noun></w>
<w><t>an-i-on</t></w>
<w><t>an-i-on-ic</t></w>
<w><t>an-is</t></w>
@@ -8535,7 +8535,7 @@
<w><t>ap-pli-a-ble</t></w>
<w><t>ap-pli-a-ble-ness</t></w>
<w><t>ap-pli-a-bly</t></w>
-<w><t>ap-pli-ance</t></w>
+<w><t>ap-pli-ance</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ap-pli-ca-bil-i-ty</t></w>
<w><t>ap-pli-ca-ble</t></w>
<w><t>ap-pli-ca-ble-ness</t></w>
@@ -8688,8 +8688,7 @@
<w><t>a-prax-i-a</t></w>
<w><t>a-prax-ic</t></w>
<w><t>A-pres-o-line</t></w>
-<w><t>ap-ri-cot</t></w>
-<w><t>a-pri-cot</t></w>
+<w><t>ap-ri-cot</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>A-pril</t></w>
<phrase><t>A-pril fool</t></phrase>
<phrase><t>a pri-o-ri</t></phrase>
@@ -9189,7 +9188,7 @@
<w><t>Ar-dis</t></w>
<w><t>ar-dish</t></w>
<w><t>Ard-more</t></w>
-<w><t>ar-dor</t></w>
+<w><t>ar-dor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ar-dour</t></w>
<w><t>Ards-ley</t></w>
<w><t>ar-du-ous</t></w>
@@ -10043,7 +10042,7 @@
<w><t>as-cribe</t><verb><regular-root/></verb></w>
<w><t>as-cribed</t></w>
<w><t>as-crib-ing</t></w>
-<w><t>as-crip-tion</t></w>
+<w><t>as-crip-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>as-cus</t></w>
<w><t>As-cus</t></w>
<w><t>asdic</t></w>
@@ -10083,7 +10082,7 @@
<w><t>A-shan-ti</t></w>
<w><t>Ash-burn</t></w>
<w><t>Ash-bur-ton</t></w>
-<w><t>Ash-by</t></w>
+<w><t>Ash-by</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ash-can</t></w>
<w><t>Ash-che-naz</t></w>
<w><t>Ash-croft</t></w>
@@ -10290,7 +10289,7 @@
<w><t>as-se-gaied</t></w>
<w><t>as-se-ga-ing</t></w>
<w><t>as-sem-bl</t></w>
-<w><t>as-sem-blage</t></w>
+<w><t>as-sem-blage</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>as-sem-ble</t><verb><regular-root/></verb></w>
<w><t>as-sem-blé</t></w>
<w><t>as-sem-bled</t></w>
@@ -10538,7 +10537,7 @@
<w><t>a-ston-ish-ment</t></w>
<w><t>As-tor</t></w>
<w><t>As-to-ri-a</t></w>
-<w><t>as-tound</t></w>
+<w><t>as-tound</t><verb><regular-root/></verb></w>
<w><t>a-stound</t></w>
<w><t>as-tound-ing</t></w>
<w><t>as-tound-ing-ly</t></w>
@@ -11248,7 +11247,7 @@
<w><t>aumm-bu-la-to-ry</t></w>
<phrase><t>au na-tu-rel</t></phrase>
<w><t>aune</t></w>
-<w><t>aunt</t></w>
+<w><t>aunt</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>aunt-ie</t></w>
<phrase><t>aunt-ie man</t></phrase>
<w><t>aunt-ies</t></w>
@@ -11984,7 +11983,7 @@
<w><t>Ax-is</t></w>
<w><t>ax-ised</t></w>
<w><t>ax-is-es</t></w>
-<w><t>ax-le</t></w>
+<w><t>ax-le</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ax-led</t></w>
<w><t>ax-le-tree</t></w>
<w><t>ax-like</t></w>
@@ -12382,7 +12381,7 @@
<w><t>back-slid-den</t></w>
<w><t>back-slide</t></w>
<w><t>back-slid-er</t></w>
-<w><t>back-slid-ing</t></w>
+<w><t>back-slid-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>back-space</t></w>
<w><t>back-spaced</t></w>
<w><t>back-spac-er</t></w>
@@ -12835,7 +12834,7 @@
<w><t>Bal-kis</t></w>
<w><t>balk-line</t></w>
<w><t>balk-y</t></w>
-<w><t>Ball</t></w>
+<w><t>Ball</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ball</t></w>
<w><t>Bal-la</t></w>
<w><t>bal-lad</t></w>
@@ -12862,7 +12861,7 @@
<w><t>Bal-la-rat</t></w>
<w><t>Bal-lard</t></w>
<w><t>bal-las</t></w>
-<w><t>bal-last</t></w>
+<w><t>bal-last</t><noun><singular/></noun><verb><regular-root/></verb></w>
<w><t>bal-last-er</t></w>
<w><t>bal-last-ic</t></w>
<w><t>bal-la-ta</t></w>
@@ -13162,7 +13161,7 @@
<phrase><t>bank an-nu-i-ties</t></phrase>
<w><t>bank-book</t></w>
<phrase><t>bank dis-count</t></phrase>
-<w><t>bank-er</t></w>
+<w><t>bank-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>bank-er’s card</t></phrase>
<phrase><t>bank-er’s or-der</t></phrase>
<w><t>bank-et</t></w>
@@ -13424,7 +13423,7 @@
<w><t>bar-gain-er</t></w>
<phrase><t>bar-gain for</t></phrase>
<phrase><t>bar-gain on</t></phrase>
-<w><t>barge</t></w>
+<w><t>barge</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>barge-board</t></w>
<phrase><t>barge cou-ple</t></phrase>
<w><t>bar-gee</t></w>
@@ -13513,7 +13512,7 @@
<w><t>Barnes-bor-o</t></w>
<w><t>Barnes-ville</t></w>
<w><t>Bar-net</t></w>
-<w><t>Bar-nett</t></w>
+<w><t>Bar-nett</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Bar-ne-veldt</t></w>
<w><t>Bar-ney</t></w>
<w><t>bar-ney</t></w>
@@ -13717,7 +13716,7 @@
<w><t>Bar-to-lom-me-o</t></w>
<w><t>Bar-to-loz-zi</t></w>
<w><t>bar-ton</t></w>
-<w><t>Bar-ton</t></w>
+<w><t>Bar-ton</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Bar-ton-ville</t></w>
<w><t>Bar-tram</t></w>
<w><t>Bar-uch</t></w>
@@ -13846,7 +13845,7 @@
<w><t>ba-sit-ting</t></w>
<w><t>bask</t></w>
<w><t>Bas-ker-ville</t></w>
-<w><t>bas-ket</t></w>
+<w><t>bas-ket</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bas-ket-ball</t></w>
<phrase><t>bas-ket chair</t></phrase>
<phrase><t>bas-ket clause</t></phrase>
@@ -14404,7 +14403,7 @@
<w><t>Beau-mar-chais</t></w>
<w><t>Beau-mont</t></w>
<w><t>Beaune</t></w>
-<w><t>Beau-re-gard</t></w>
+<w><t>Beau-re-gard</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>beaut</t></w>
<w><t>beau-te-ous</t></w>
<w><t>beau-te-ous-ly</t></w>
@@ -14691,7 +14690,7 @@
<w><t>be-fog</t></w>
<w><t>be-fogged</t></w>
<w><t>be-fog-ging</t></w>
-<w><t>be-fool</t></w>
+<w><t>be-fool</t><verb><regular-root/></verb></w>
<w><t>be-fore</t></w>
<w><t>be-fore-hand</t></w>
<w><t>be-fore-time</t></w>
@@ -14802,7 +14801,7 @@
<w><t>be-hold</t><verb><regular-root value="false"/></verb></w>
<w><t>be-hold-a-ble</t></w>
<w><t>be-hold-en</t></w>
-<w><t>be-hold-er</t></w>
+<w><t>be-hold-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>be-hold-ing</t></w>
<w><t>be-holds</t><verb><lemma>behold</lemma></verb></w>
<w><t>Beh-rens</t></w>
@@ -14847,13 +14846,13 @@
<w><t>be-lay-ing</t></w>
<phrase><t>be-lay-ing pin</t></phrase>
<phrase><t>bel can-to</t></phrase>
-<w><t>belch</t></w>
+<w><t>belch</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>belch-er</t></w>
<w><t>beld</t></w>
<w><t>bel-dam</t></w>
<w><t>bel-dame</t></w>
<w><t>Bel-ding</t></w>
-<w><t>be-lea-guer</t></w>
+<w><t>be-lea-guer</t><verb><regular-root/></verb></w>
<w><t>be-lea-guer-er</t></w>
<w><t>be-lec-tion</t></w>
<w><t>Be-lém</t></w>
@@ -14963,9 +14962,10 @@
<w><t>Bel-lo-ni-an</t></w>
<w><t>Bel-lot</t></w>
<w><t>Bel-lot-to</t></w>
-<w><t>bel-low</t></w>
+<w><t>bel-low</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Bel-low</t></w>
<w><t>bel-low-er</t></w>
+<w><t>bel-low-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bel-lows</t></w>
<w><t>Bel-lows</t></w>
<phrase><t>bel-lows fish</t></phrase>
@@ -15525,7 +15525,7 @@
<w><t>be-sought</t></w>
<w><t>be-spake</t></w>
<w><t>be-span-gle</t></w>
-<w><t>be-spat-ter</t></w>
+<w><t>be-spat-ter</t><verb><regular-root/></verb></w>
<w><t>be-speak</t><verb/></w>
<w><t>be-speak-ing</t></w>
<w><t>be-speaks</t><verb/></w>
@@ -15698,7 +15698,7 @@
<w><t>Bev-er-idge</t></w>
<w><t>Bev-e-ridge</t></w>
<w><t>Bev-er-ley</t></w>
-<w><t>Bev-er-ly</t></w>
+<w><t>Bev-er-ly</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>Bev-er-ly Hills</t></phrase>
<w><t>bev-ies</t></w>
<w><t>bev-illed</t></w>
@@ -17111,7 +17111,7 @@
<w><t>blaw</t></w>
<w><t>Blay-don</t></w>
<w><t>Blaze</t></w>
-<w><t>blaze</t></w>
+<w><t>blaze</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>blaz-er</t></w>
<w><t>blaz-es</t></w>
<w><t>blaz-ing</t></w>
@@ -17607,7 +17607,7 @@
<w><t>blush-ful-ness</t></w>
<w><t>blush-ing-ly</t></w>
<w><t>blush-less</t></w>
-<w><t>blus-ter</t></w>
+<w><t>blus-ter</t><noun><singular/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>blus-ter-er</t></w>
<w><t>blus-ter-ing-ly</t></w>
<w><t>blus-ter-ous</t></w>
@@ -17633,7 +17633,7 @@
<w><t>board</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>board-a-ble</t></w>
<w><t>board=and=shin-gle</t></w>
-<w><t>board-er</t></w>
+<w><t>board-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>board-ing</t></w>
<w><t>board-ing-house</t></w>
<phrase><t>board-ing house</t></phrase>
@@ -17817,7 +17817,7 @@
<w><t>bof-fo</t></w>
<w><t>boff-o-la</t></w>
<phrase><t>Bo-fors gun</t></phrase>
-<w><t>bog</t></w>
+<w><t>bog</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Bo-ga-lu-sa</t></w>
<w><t>Bo-gan</t></w>
<w><t>bo-gan</t></w>
@@ -18127,7 +18127,7 @@
<w><t>bone-shak-er</t></w>
<w><t>bone-up</t></w>
<w><t>bone-yard</t></w>
-<w><t>bon-fire</t></w>
+<w><t>bon-fire</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bong</t></w>
<w><t>bon-go</t></w>
<w><t>Bon-go</t></w>
@@ -18268,7 +18268,7 @@
<w><t>Boole</t></w>
<w><t>bool-e-an</t></w>
<phrase><t>Bool-e-an al-ge-bra</t></phrase>
-<w><t>boom</t></w>
+<w><t>boom</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>boom-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>boom-er-ang</t></w>
<w><t>boom-ing-ly</t></w>
@@ -18681,7 +18681,7 @@
<w><t>Bou-lan-gism</t></w>
<w><t>Bou-lan-gist</t></w>
<w><t>Boul-der</t></w>
-<w><t>boul-der</t></w>
+<w><t>boul-der</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>boul-der clay</t></phrase>
<phrase><t>Boul-der Dam</t></phrase>
<w><t>boul-der-ing</t></w>
@@ -18830,7 +18830,7 @@
<phrase><t>bow-el move-ment</t></phrase>
<w><t>Bow-en</t></w>
<w><t>bow-en-ite</t></w>
-<w><t>bow-er</t></w>
+<w><t>bow-er</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>bow-er-bird</t></w>
<w><t>bow-er-ies</t></w>
<w><t>bow-er-like</t></w>
@@ -19184,7 +19184,7 @@
<w><t>bran-der-ing</t></w>
<w><t>Bran-des</t></w>
<w><t>bran-died</t></w>
-<w><t>bran-dish</t></w>
+<w><t>bran-dish</t><verb><regular-root/></verb></w>
<w><t>bran-dish-er</t></w>
<w><t>brand-less</t></w>
<w><t>brand-ling</t></w>
@@ -19407,7 +19407,7 @@
<w><t>Bream</t></w>
<w><t>Breas-fed</t></w>
<w><t>Breas-feed-ing</t></w>
-<w><t>breast</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>breast</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>breast=beat-er</t></w>
<w><t>breast=beat-ing</t></w>
<w><t>breast-bone</t></w>
@@ -19434,7 +19434,7 @@
<w><t>breath-i-er</t></w>
<w><t>breath-i-est</t></w>
<w><t>breath-i-ness</t></w>
-<w><t>breath-ing</t></w>
+<w><t>breath-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>breath-ing-ly</t></w>
<phrase><t>breath-ing space</t></phrase>
<w><t>breath-less</t></w>
@@ -19481,7 +19481,7 @@
<w><t>breeds</t><verb><lemma>breed</lemma></verb></w>
<w><t>breeks</t></w>
<w><t>breeng-er</t></w>
-<w><t>breeze</t></w>
+<w><t>breeze</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>breeze-less</t></w>
<w><t>breeze-like</t></w>
<w><t>breeze-way</t></w>
@@ -19594,7 +19594,7 @@
<w><t>brib-ing</t></w>
<w><t>Brice</t></w>
<w><t>Brick</t></w>
-<w><t>brick</t></w>
+<w><t>brick</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>brick-bat</t></w>
<w><t>brick-field</t></w>
<w><t>brick-field-er</t></w>
@@ -19683,7 +19683,7 @@
<w><t>brig-a-dier-ship</t></w>
<w><t>bri-gad-ing</t></w>
<w><t>brig-a-low</t></w>
-<w><t>brig-and</t></w>
+<w><t>brig-and</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>brig-and-age</t></w>
<w><t>brig-an-dine</t></w>
<w><t>brig-and-ish</t></w>
@@ -19758,7 +19758,7 @@
<w><t>brin-ish</t></w>
<w><t>brin-ish-ness</t></w>
<w><t>brin-jal</t></w>
-<w><t>brink</t></w>
+<w><t>brink</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>brink-less</t></w>
<w><t>Brink-ley</t></w>
<w><t>brink-man-ship</t></w>
@@ -20057,7 +20057,7 @@
<w><t>brood-mare</t></w>
<w><t>brood-y</t></w>
<w><t>Brook</t></w>
-<w><t>brook</t></w>
+<w><t>brook</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>brook-a-ble</t></w>
<w><t>Brooke</t></w>
<w><t>Brook-field</t></w>
@@ -20772,7 +20772,7 @@
<w><t>Bun-des-tag</t></w>
<w><t>bundh</t></w>
<w><t>Bund-ist</t></w>
-<w><t>bun-dle</t></w>
+<w><t>bun-dle</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bun-dler</t></w>
<phrase><t>bun-dle up</t></phrase>
<w><t>bun-do-bust</t></w>
@@ -21675,7 +21675,7 @@
<w><t>ca-du-ce-us</t></w>
<w><t>ca-du-ci-ty</t></w>
<w><t>ca-du-cous</t></w>
-<w><t>Cad-wal-la-der</t></w>
+<w><t>Cad-wal-la-der</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cae-cal-ly</t></w>
<w><t>cae-cil-i-an</t></w>
<w><t>cae-cum</t></w>
@@ -21788,7 +21788,7 @@
<w><t>Cairns</t></w>
<w><t>cairn-y</t></w>
<w><t>Cai-ro</t></w>
-<w><t>cais-son</t></w>
+<w><t>cais-son</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>cais-son dis-ease</t></phrase>
<w><t>cais-soned</t></w>
<w><t>Caith-ness</t></w>
@@ -22666,7 +22666,7 @@
<w><t>can-ning</t></w>
<phrase><t>Can-ning Ba-sin</t></phrase>
<w><t>Can-niz-za-ro</t></w>
-<w><t>Can-nock</t></w>
+<w><t>Can-nock</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Can-non</t></w>
<w><t>can-non</t></w>
<w><t>can-non-ade</t></w>
@@ -22865,7 +22865,7 @@
<w><t>ca-par-i-son</t><noun/><verb><regular-root/></verb></w>
<w><t>ca-pa-ta-ces</t></w>
<w><t>ca-pa-taz</t></w>
-<w><t>cape</t></w>
+<w><t>cape</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Cape</t></w>
<w><t>ca-pe-a-dor</t></w>
<w><t>ca-pe-a-do-res</t></w>
@@ -24051,7 +24051,7 @@
<w><t>Cas-ti-glio-ne</t></w>
<w><t>Cas-tile</t></w>
<phrase><t>Cas-tile soap</t></phrase>
-<w><t>Cas-til-ian</t></w>
+<w><t>Cas-til-ian</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Cas-til-la</t></w>
<w><t>Cas-ti-lla</t></w>
<phrase><t>Cas-ti-lla la Vie-ja</t></phrase>
@@ -24095,7 +24095,7 @@
<w><t>cas-u-al-ness</t></w>
<w><t>cas-u-al-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cas-u-a-ri-na</t></w>
-<w><t>cas-u-ist</t></w>
+<w><t>cas-u-ist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cas-u-is-tic</t></w>
<w><t>cas-u-is-ti-cal</t></w>
<w><t>cas-u-is-ti-cal-ly</t></w>
@@ -24565,7 +24565,7 @@
<w><t>caus-er</t></w>
<w><t>cau-se-rie</t></w>
<w><t>cau-seuse</t></w>
-<w><t>cause-way</t></w>
+<w><t>cause-way</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cau-sey</t></w>
<w><t>caus-ing</t></w>
<w><t>caus-tic</t></w>
@@ -24658,7 +24658,7 @@
<w><t>cav-i-ta-tion</t></w>
<w><t>Ca-vi-te</t></w>
<w><t>cav-i-tied</t></w>
-<w><t>cav-i-ty</t></w>
+<w><t>cav-i-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>cav-i-ty block</t></phrase>
<phrase><t>cav-i-ty res-o-na-tor</t></phrase>
<phrase><t>cav-i-ty wall</t></phrase>
@@ -25409,7 +25409,7 @@
<w><t>chae-to-pod</t></w>
<w><t>chae-to-tac-tic</t></w>
<w><t>chae-to-tax-y</t></w>
-<w><t>chafe</t></w>
+<w><t>chafe</t><verb><regular-root/></verb></w>
<w><t>chaf-er</t></w>
<w><t>chaf-er-ies</t></w>
<w><t>chaf-er-y</t></w>
@@ -26487,7 +26487,7 @@
<w><t>chest-i-est</t></w>
<w><t>chest-i-ly</t></w>
<w><t>chest-i-ness</t></w>
-<w><t>chest-nut</t></w>
+<w><t>chest-nut</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>chest-nut-ty</t></w>
<phrase><t>chest of vi-ols</t></phrase>
<w><t>chest-y</t></w>
@@ -28375,7 +28375,7 @@
<w><t>cla-mant-ly</t></w>
<w><t>clam-a-to-ri-al</t></w>
<w><t>clam-bake</t></w>
-<w><t>clam-ber</t></w>
+<w><t>clam-ber</t><verb><regular-root/></verb></w>
<w><t>clam-ber-er</t></w>
<w><t>clam-jam-fry</t></w>
<w><t>clam-jam-phrie</t></w>
@@ -28408,7 +28408,7 @@
<w><t>clang-or-ous</t></w>
<w><t>clang-or-ous-ly</t></w>
<w><t>clang-our</t></w>
-<w><t>clank</t></w>
+<w><t>clank</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>clank-ing-ly</t></w>
<w><t>clank-ing-ness</t></w>
<w><t>clank-less</t></w>
@@ -28832,7 +28832,7 @@
<w><t>cli-en-tele</t></w>
<w><t>cli-ent-less</t></w>
<w><t>Cliff</t></w>
-<w><t>cliff</t></w>
+<w><t>cliff</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cliff-hang-er</t></w>
<w><t>cliff=hang-er</t></w>
<w><t>cliff-hang-ing</t></w>
@@ -28963,7 +28963,7 @@
<w><t>Cllr</t></w>
<w><t>clo-a-ca</t></w>
<w><t>clo-a-cal</t></w>
-<w><t>cloak</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>cloak</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>cloak=and=dag-ger</t></w>
<w><t>cloak=and=suit-er</t></w>
<w><t>cloak-ed-ly</t></w>
@@ -29153,7 +29153,7 @@
<w><t>cloy-ing</t></w>
<w><t>cloy-ing-ly</t></w>
<w><t>cloy-ing-ness</t></w>
-<w><t>club</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>club</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>club-a-bil-i-ty</t></w>
<w><t>club-a-ble</t></w>
<w><t>club-ba-bil-i-ty</t></w>
@@ -30670,7 +30670,7 @@
<w><t>com-mi-na-tor</t></w>
<w><t>com-min-a-to-ry</t></w>
<w><t>Com-mines</t></w>
-<w><t>com-min-gle</t></w>
+<w><t>com-min-gle</t><verb><regular-root/></verb></w>
<w><t>com-min-gler</t></w>
<w><t>com-mi-nute</t></w>
<w><t>com-mi-nut-ed</t></w>
@@ -30690,7 +30690,7 @@
<w><t>com-mis-sar-i-al</t></w>
<w><t>com-mis-sar-i-at</t></w>
<w><t>com-mis-sar-ies</t></w>
-<w><t>com-mis-sar-y</t></w>
+<w><t>com-mis-sar-y</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>com-mis-sion</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>com-mis-sion-aire</t></w>
<w><t>com-mis-sion-al</t></w>
@@ -30823,7 +30823,7 @@
<w><t>com-mu-ni-ca-tive-ness</t></w>
<w><t>com-mu-ni-ca-tor</t></w>
<w><t>com-mu-ni-ca-to-ry</t></w>
-<w><t>com-mun-ing</t></w>
+<w><t>com-mun-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>com-mun-ion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Com-mun-ion</t></w>
<w><t>com-mun-ion-a-ble</t></w>
@@ -31313,7 +31313,7 @@
<w><t>con-ceal-ed-ly</t></w>
<w><t>con-ceal-ed-ness</t></w>
<w><t>con-ceal-er</t></w>
-<w><t>con-ceal-ment</t></w>
+<w><t>con-ceal-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>con-cede</t><verb><regular-root/></verb></w>
<w><t>con-ced-ed</t></w>
<w><t>con-ced-ed-ly</t></w>
@@ -32022,7 +32022,7 @@
<w><t>con-ju-ga-tive</t></w>
<w><t>con-ju-ga-tor</t></w>
<w><t>con-junct</t></w>
-<w><t>con-junc-tion</t></w>
+<w><t>con-junc-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>con-junc-tion-al</t></w>
<w><t>con-junc-tion-al-ly</t></w>
<w><t>con-junc-tion=re-duc-tion</t></w>
@@ -32131,7 +32131,7 @@
<w><t>con-qui-an</t></w>
<w><t>con-quis-ta-dor</t></w>
<w><t>con-quis-ta-do-res</t></w>
-<w><t>Con-rad</t></w>
+<w><t>Con-rad</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Con-ral</t></w>
<w><t>Con-roe</t></w>
<w><t>Con-roy</t></w>
@@ -32895,7 +32895,7 @@
<w><t>con-ven-tion-al-is-ing</t></w>
<w><t>con-ven-tion-al-ism</t></w>
<w><t>con-ven-tion-al-ist</t></w>
-<w><t>con-ven-tion-al-i-ty</t></w>
+<w><t>con-ven-tion-al-i-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>con-ven-tion-al-i-za-tion</t></w>
<w><t>con-ven-tion-al-ize</t></w>
<w><t>con-ven-tion-al-ized</t></w>
@@ -32905,7 +32905,7 @@
<w><t>con-ven-tion-er</t></w>
<w><t>con-ven-tu-al</t></w>
<w><t>con-ven-tu-al-ly</t></w>
-<w><t>con-verge</t></w>
+<w><t>con-verge</t><verb><regular-root/></verb></w>
<w><t>con-verged</t></w>
<w><t>con-ver-gence</t></w>
<w><t>con-ver-gen-cy</t></w>
@@ -33686,7 +33686,7 @@
<w><t>co-ro-zo</t></w>
<w><t>corp</t></w>
<w><t>cor-po-ra</t></w>
-<w><t>cor-po-ral</t></w>
+<w><t>cor-po-ral</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cor-po-ral-cy</t></w>
<w><t>cor-po-ra-le</t></w>
<w><t>cor-po-ral-i-ty</t></w>
@@ -34095,7 +34095,7 @@
<w><t>co-sy</t></w>
<phrase><t>co-sy a-long</t></phrase>
<w><t>Co-sy-ra</t></w>
-<w><t>cot</t></w>
+<w><t>cot</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Cot</t></w>
<w><t>Co-ta-ba-to</t></w>
<w><t>co-tan</t></w>
@@ -34111,7 +34111,7 @@
<w><t>co-ten-an-cy</t></w>
<w><t>co-ten-ant</t></w>
<w><t>co-ten-ure</t></w>
-<w><t>co-te-rie</t></w>
+<w><t>co-te-rie</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>co-ter-mi-nous</t></w>
<w><t>coth</t></w>
<w><t>coth-a-more</t></w>
@@ -34345,7 +34345,7 @@
<w><t>coun-ter-mand</t><verb><regular-root/></verb></w>
<w><t>coun-ter-mand-a-ble</t></w>
<w><t>coun-ter-man-i-fes-to</t></w>
-<w><t>coun-ter-march</t></w>
+<w><t>coun-ter-march</t><verb><regular-root/></verb></w>
<w><t>coun-ter-mark</t></w>
<w><t>coun-ter-meas-ure</t></w>
<w><t>coun-ter-mine</t></w>
@@ -34474,7 +34474,7 @@
<w><t>cou-plet</t></w>
<w><t>coup-ling</t></w>
<w><t>cou-pling</t></w>
-<w><t>cou-pon</t></w>
+<w><t>cou-pon</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cou-pon-less</t></w>
<w><t>cour-age</t></w>
<w><t>cou-ra-geous</t></w>
@@ -34609,7 +34609,7 @@
<w><t>co-vers</t></w>
<phrase><t>co-versed sine</t></phrase>
<w><t>cov-er=shoul-der</t></w>
-<w><t>cov-ert</t></w>
+<w><t>cov-ert</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective/></w>
<phrase><t>cov-ert cloth</t></phrase>
<phrase><t>cov-ert coat</t></phrase>
<w><t>cov-ert-ly</t></w>
@@ -34646,7 +34646,7 @@
<w><t>cow-boy</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cow-catch-er</t></w>
<w><t>Cow-ell</t></w>
-<w><t>cow-er</t></w>
+<w><t>cow-er</t><verb><regular-root/></verb></w>
<w><t>cow-er-ing-ly</t></w>
<w><t>Cowes</t></w>
<w><t>cow-fish</t></w>
@@ -34994,7 +34994,7 @@
<w><t>cra-ven-ly</t></w>
<w><t>cra-ven-ness</t></w>
<w><t>crav-er</t></w>
-<w><t>crav-ing</t></w>
+<w><t>crav-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>crav-ing-ly</t></w>
<w><t>crav-ing-ness</t></w>
<w><t>craw</t></w>
@@ -35319,7 +35319,7 @@
<w><t>crew-man</t></w>
<w><t>crew-man-ship</t></w>
<w><t>crew-neck</t></w>
-<w><t>crib</t></w>
+<w><t>crib</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>crib-bage</t></w>
<phrase><t>crib-bage board</t></phrase>
<w><t>crib-ber</t></w>
@@ -36507,7 +36507,7 @@
<w><t>curb-ing</t></w>
<w><t>curb-less</t></w>
<w><t>curb-like</t></w>
-<w><t>curb-stone</t></w>
+<w><t>curb-stone</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>curch</t></w>
<w><t>cur-cu-li-o</t></w>
<w><t>cur-cu-li-os</t></w>
@@ -36673,7 +36673,7 @@
<w><t>cur-va-ceous</t></w>
<w><t>cur-va-cious</t></w>
<w><t>cur-va-ture</t></w>
-<w><t>curve</t></w>
+<w><t>curve</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>curv-ed-ly</t></w>
<w><t>curv-ed-ness</t></w>
<w><t>cur-vet</t></w>
@@ -37220,6 +37220,7 @@
<w><t>D/O</t></w>
<w><t>D/W</t></w>
<w><t>D.C.</t><abbrev referenced-word="District of Columbia"/></w>
+<w><t>D.D.</t><abbrev referenced-word="Doctor of Divinity"/></w>
<w><t>dab</t></w>
<w><t>dab-ber</t></w>
<w><t>dab-bing</t></w>
@@ -37449,7 +37450,7 @@
<w><t>Da-ly</t></w>
<w><t>Dal-yce</t></w>
<w><t>Dal-y-more</t></w>
-<w><t>dam</t></w>
+<w><t>dam</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Dam</t></w>
<w><t>Da-m</t></w>
<w><t>dam-age</t></w>
@@ -38230,7 +38231,7 @@
<w><t>deb-on-naire</t></w>
<w><t>Deb-o-ra</t><noun><convertible-to-possessive/></noun></w>
<w><t>Deb-o-rah</t><noun><convertible-to-possessive/></noun></w>
-<w><t>de-bouch</t></w>
+<w><t>de-bouch</t><verb><regular-root/></verb></w>
<w><t>dé-bou-ché</t></w>
<w><t>de-bouch-ment</t></w>
<w><t>de-bou-chure</t></w>
@@ -38308,7 +38309,7 @@
<w><t>De-cam-er-on</t></w>
<w><t>de-cam-er-ous</t></w>
<w><t>dec-a-me-ter</t></w>
-<w><t>de-camp</t></w>
+<w><t>de-camp</t><verb><regular-root/></verb></w>
<w><t>de-camp-ment</t></w>
<w><t>dec-an</t></w>
<w><t>dec-a-nal</t></w>
@@ -38693,7 +38694,7 @@
<w><t>dé-cou-page</t></w>
<w><t>de-cou-ple</t></w>
<w><t>de-cou-pling</t></w>
-<w><t>de-coy</t></w>
+<w><t>de-coy</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>de-coy-er</t></w>
<w><t>de-crease</t><verb><regular-root/></verb></w>
<w><t>de-creas-ing</t></w>
@@ -39423,7 +39424,7 @@
<w><t>de-liv-er</t><verb><regular-root/></verb></w>
<w><t>de-liv-er-a-ble</t></w>
<w><t>de-liv-er-ance</t><noun><pluralizable/></noun></w>
-<w><t>de-liv-er-er</t></w>
+<w><t>de-liv-er-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>de-liv-er-ies</t></w>
<w><t>de-liv-er-ly</t></w>
<w><t>de-liv-er-y</t></w>
@@ -40537,16 +40538,16 @@
<w><t>de-sen-si-tiz-er</t></w>
<w><t>de-sen-si-tiz-ing</t></w>
<w><t>des-ert</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
-<w><t>de-sert</t><noun/><verb><regular-root/></verb></w>
+<w><t>de-sert</t><verb><regular-root/></verb></w>
<phrase><t>des-ert boots</t></phrase>
<phrase><t>des-ert cool-er</t></phrase>
<w><t>de-sert-ed</t><adjective/></w>
<w><t>de-sert-ed-ly</t></w>
<w><t>de-sert-ed-ness</t></w>
-<w><t>de-sert-er</t></w>
+<w><t>de-sert-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>de-ser-tic</t></w>
<w><t>des-er-tic-o-lous</t></w>
-<w><t>de-ser-tion</t></w>
+<w><t>de-ser-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>des-ert is-land</t></phrase>
<w><t>des-ert-like</t></w>
<phrase><t>des-ert lynx</t></phrase>
@@ -40702,7 +40703,7 @@
<w><t>de-spit-ing</t></w>
<w><t>Des-poe-na</t></w>
<w><t>de-spoil</t><verb><regular-root/></verb></w>
-<w><t>de-spoil-er</t></w>
+<w><t>de-spoil-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>de-spoil-ment</t></w>
<w><t>de-spo-li-a-tion</t></w>
<w><t>de-spond</t><verb><regular-root/></verb></w>
@@ -40917,13 +40918,13 @@
<w><t>de-tox-i-fied</t></w>
<w><t>de-tox-i-fy</t></w>
<w><t>de-tox-i-fy-ing</t></w>
-<w><t>de-tract</t></w>
+<w><t>de-tract</t><verb><regular-root/></verb></w>
<w><t>de-tract-ing-ly</t></w>
<w><t>de-trac-tion</t></w>
<w><t>de-trac-tive</t></w>
<w><t>de-trac-tive-ly</t></w>
<w><t>de-trac-tive-ness</t></w>
-<w><t>de-trac-tor</t></w>
+<w><t>de-trac-tor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>de-trac-to-ry</t></w>
<w><t>de-train</t></w>
<w><t>de-train-ment</t></w>
@@ -41153,7 +41154,7 @@
<w><t>de-vval-ued</t></w>
<w><t>Dew</t></w>
<w><t>DEW</t></w>
-<w><t>dew</t></w>
+<w><t>dew</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>De-wa-li</t></w>
<w><t>de-wan</t></w>
<w><t>Dew-ar</t></w>
@@ -41334,7 +41335,7 @@
<w><t>di-ag-o-nal=built</t></w>
<w><t>di-ag-o-nal=cut</t></w>
<w><t>di-ag-o-nal-ly</t></w>
-<w><t>di-a-gram</t></w>
+<w><t>di-a-gram</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>di-a-gramed</t></w>
<w><t>di-a-gram-ing</t></w>
<w><t>di-a-gram-mat-ic</t></w>
@@ -42060,7 +42061,7 @@
<w><t>di-lu-vi-an</t></w>
<w><t>di-lu-vi-on</t></w>
<w><t>di-lu-vi-um</t></w>
-<w><t>dim</t></w>
+<w><t>dim</t><verb><regular-root/></verb><adjective><extensible/></adjective></w>
<w><t>Di-Mag-gi-o</t></w>
<w><t>Di-mashq</t></w>
<w><t>dime</t></w>
@@ -42700,7 +42701,7 @@
<w><t>dis-com-bob-u-late</t></w>
<w><t>dis-com-bob-u-lat-ed</t></w>
<w><t>dis-com-bob-u-lat-ing</t></w>
-<w><t>dis-com-fit</t></w>
+<w><t>dis-com-fit</t><verb><regular-root/></verb></w>
<w><t>dis-com-fit-er</t></w>
<w><t>dis-com-fi-ture</t></w>
<w><t>dis-com-fort</t></w>
@@ -42871,7 +42872,7 @@
<w><t>dis-em-bar-go-ing</t></w>
<w><t>dis-em-bark</t><verb><regular-root/></verb></w>
<w><t>dis-em-bar-ka-tion</t></w>
-<w><t>dis-em-bar-rass</t></w>
+<w><t>dis-em-bar-rass</t><verb><regular-root/></verb></w>
<w><t>dis-em-bar-rass-ment</t></w>
<w><t>dis-em-bod-ied</t></w>
<w><t>dis-em-bod-i-ment</t></w>
@@ -42893,7 +42894,7 @@
<w><t>dis-en-chant</t></w>
<w><t>dis-en-chant-er</t></w>
<w><t>dis-en-chant-ment</t></w>
-<w><t>dis-en-cum-ber</t></w>
+<w><t>dis-en-cum-ber</t><verb><regular-root/></verb></w>
<w><t>dis-en-dow</t></w>
<w><t>dis-en-dow-er</t></w>
<w><t>dis-en-dow-ment</t></w>
@@ -42956,7 +42957,7 @@
<w><t>dis-fran-chise-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-fran-chis-ing</t></w>
<w><t>dis-frock</t></w>
-<w><t>dis-fur-nish</t></w>
+<w><t>dis-fur-nish</t><verb><regular-root/></verb></w>
<w><t>dis-fur-nish-ment</t></w>
<w><t>dis-gav-el</t></w>
<w><t>dis-gav-eled</t></w>
@@ -43199,7 +43200,7 @@
<w><t>dis-or-gan-i-za-tion</t></w>
<w><t>dis-or-gan-ize</t></w>
<w><t>dis-or-gan-ized</t></w>
-<w><t>dis-or-gan-iz-er</t></w>
+<w><t>dis-or-gan-iz-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-or-gan-iz-ing</t></w>
<w><t>dis-o-ri-ent</t></w>
<w><t>dis-o-ri-en-tate</t></w>
@@ -43525,7 +43526,7 @@
<w><t>dis-si-pa-ted-ness</t></w>
<w><t>dis-si-pat-er</t></w>
<w><t>dis-si-pat-ing</t></w>
-<w><t>dis-si-pa-tion</t></w>
+<w><t>dis-si-pa-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-si-pa-tive</t></w>
<w><t>dis-si-pa-tiv-i-ty</t></w>
<w><t>dis-si-pa-tor</t></w>
@@ -43845,7 +43846,7 @@
<w><t>dive</t></w>
<phrase><t>dive bomb-er</t></phrase>
<w><t>div-er</t></w>
-<w><t>di-verge</t></w>
+<w><t>di-verge</t><verb><regular-root/></verb></w>
<w><t>di-verged</t></w>
<w><t>di-ver-gence</t></w>
<w><t>di-ver-gen-cy</t></w>
@@ -44444,7 +44445,7 @@
<phrase><t>dom-i-nant sev-enth chord</t></phrase>
<phrase><t>dom-i-nant ten-e-ment</t></phrase>
<phrase><t>dom-i-nant wave-length</t></phrase>
-<w><t>dom-i-nate</t></w>
+<w><t>dom-i-nate</t><verb><regular-root/></verb></w>
<w><t>dom-i-nat-ed</t></w>
<w><t>dom-i-nat-ing</t></w>
<w><t>dom-i-nat-ing-ly</t></w>
@@ -44604,10 +44605,10 @@
<w><t>door-post</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>door-sill</t></w>
<w><t>door-stead</t></w>
-<w><t>door-step</t></w>
+<w><t>door-step</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>door-stone</t></w>
<w><t>door-stop</t></w>
-<w><t>door-way</t></w>
+<w><t>door-way</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>door-yard</t></w>
<w><t>Doos-to-ev-sky</t></w>
<w><t>doo-ver</t></w>
@@ -45294,7 +45295,7 @@
<w><t>drap-a-ble</t></w>
<w><t>drape</t><verb><regular-root/></verb></w>
<w><t>drape-a-ble</t></w>
-<w><t>drap-er</t></w>
+<w><t>drap-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Dra-per</t></w>
<w><t>dra-per-ied</t></w>
<w><t>dra-per-ies</t></w>
@@ -45477,7 +45478,7 @@
<phrase><t>drift tran-sis-tor</t></phrase>
<w><t>drift-wood</t></w>
<w><t>drift-y</t></w>
-<w><t>drill</t></w>
+<w><t>drill</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>drill-a-ble</t></w>
<w><t>drill-bit</t></w>
<w><t>drill-er</t></w>
@@ -45847,7 +45848,7 @@
<w><t>due</t></w>
<w><t>du-e-cen-tist</t></w>
<w><t>du-e-cen-to</t></w>
-<w><t>du-el</t></w>
+<w><t>du-el</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>du-eled</t></w>
<w><t>du-el-er</t></w>
<w><t>du-el-ing</t></w>
@@ -46726,7 +46727,7 @@
<w><t>eaves-drip</t></w>
<w><t>eaves-drop</t></w>
<w><t>eaves-dropped</t></w>
-<w><t>eaves-drop-per</t></w>
+<w><t>eaves-drop-per</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>eaves-drop-ping</t></w>
<w><t>ebb</t><verb><regular-root/></verb></w>
<w><t>EBCDIC</t></w>
@@ -46815,8 +46816,7 @@
<w><t>E-che-ga-ray</t></w>
<w><t>ech-e-lette</t></w>
<w><t>e-chelle</t></w>
-<w><t>ech-e-lon</t></w>
-<w><t>e-che-lon</t></w>
+<w><t>ech-e-lon</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ech-e-lon-ment</t></w>
<w><t>E-che-mus</t></w>
<w><t>E-che-tus</t></w>
@@ -48591,7 +48591,7 @@
<w><t>Em-i-ly</t></w>
<w><t>Em-i-na</t></w>
<w><t>Em-i-nence</t></w>
-<w><t>em-i-nence</t></w>
+<w><t>em-i-nence</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>em-i-nen-cy</t></w>
<w><t>Em-i-nen-cy</t></w>
<w><t>em-i-nent</t></w>
@@ -49413,7 +49413,7 @@
<w><t>en-gross-ing</t></w>
<w><t>en-gross-ing-ly</t></w>
<w><t>en-gross-ing-ness</t></w>
-<w><t>en-gross-ment</t></w>
+<w><t>en-gross-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>en-gulf</t><verb><regular-root/></verb></w>
<w><t>en-gulf-ment</t></w>
<w><t>en-hance</t><verb><regular-root/></verb></w>
@@ -50562,7 +50562,7 @@
<w><t>e-qui-nox</t></w>
<w><t>e-qui=NP=de-le-tion</t></w>
<w><t>e-quip</t><verb><regular-root/></verb></w>
-<w><t>eq-ui-page</t></w>
+<w><t>eq-ui-page</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>eq-ui-par-ti-tion</t></w>
<w><t>e-quip-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>eq-ui-poise</t></w>
@@ -50851,7 +50851,7 @@
<w><t>err-a-bil-i-ty</t></w>
<w><t>err-a-ble</t></w>
<w><t>er-ran-cy</t></w>
-<w><t>er-rand</t></w>
+<w><t>er-rand</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>er-rand boy</t></phrase>
<w><t>er-rant</t></w>
<w><t>er-rant-ly</t></w>
@@ -51992,7 +51992,7 @@
<w><t>e-ven-fall</t></w>
<w><t>e-ven=hand-ed</t></w>
<w><t>e-ven=hand-ed-ness</t></w>
-<w><t>eve-ning</t></w>
+<w><t>eve-ning</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>eve-ning class</t></phrase>
<phrase><t>eve-ning dress</t></phrase>
<phrase><t>eve-ning prim-rose</t></phrase>
@@ -52152,7 +52152,7 @@
<w><t>ew-er-ies</t></w>
<w><t>ew-er-y</t></w>
<w><t>E-wig=weib-li-che</t></w>
-<w><t>Ew-ing</t></w>
+<w><t>Ew-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ex-ac-er-bate</t></w>
<w><t>ex-ac-er-bat-ed</t></w>
<w><t>ex-ac-er-bat-ing</t></w>
@@ -52196,7 +52196,7 @@
<w><t>ex-am-ined</t></w>
<w><t>ex-am-i-nee</t></w>
<w><t>ex-am-ine=in=chief</t></w>
-<w><t>ex-am-in-er</t></w>
+<w><t>ex-am-in-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ex-am-in-ing</t></w>
<w><t>ex-am-in-ing-ly</t></w>
<w><t>ex-am-ple</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -52227,7 +52227,7 @@
<w><t>ex-ca-vate</t></w>
<w><t>ex-ca-vat-ed</t></w>
<w><t>ex-ca-vat-ing</t></w>
-<w><t>ex-ca-va-tion</t></w>
+<w><t>ex-ca-va-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ex-ca-va-tor</t></w>
<w><t>ex-ceed</t><verb><regular-root/></verb></w>
<w><t>ex-ceed-a-ble</t></w>
@@ -52937,7 +52937,7 @@
<w><t>ex-ploit-a-to-ry</t></w>
<w><t>ex-ploit-er</t></w>
<w><t>ex-plor-a-ble</t></w>
-<w><t>ex-plo-ra-tion</t></w>
+<w><t>ex-plo-ra-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ex-plor-a-tive</t></w>
<w><t>ex-plor-a-tive-ly</t></w>
<w><t>ex-plor-a-to-ry</t></w>
@@ -52944,7 +52944,7 @@
<w><t>ex-plore</t></w>
<w><t>ex-plored</t></w>
<w><t>Ex-plor-er</t></w>
-<w><t>ex-plor-er</t></w>
+<w><t>ex-plor-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ex-plor-ing</t></w>
<w><t>ex-plor-ing-ly</t></w>
<w><t>ex-plo-si-bil-i-ty</t></w>
@@ -53665,7 +53665,7 @@
<w><t>fa-ër-y</t></w>
<w><t>faff</t></w>
<w><t>Faf-nir</t></w>
-<w><t>fag</t></w>
+<w><t>fag</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fa-ga-ceous</t></w>
<w><t>Fag-gi</t></w>
<w><t>fag-ging</t></w>
@@ -53891,7 +53891,7 @@
<w><t>fal-si-fi-er</t></w>
<w><t>fal-si-fy</t></w>
<w><t>fal-si-fy-ing</t></w>
-<w><t>fal-si-ty</t></w>
+<w><t>fal-si-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Fal-staff</t></w>
<w><t>Fal-staff-ian</t></w>
<w><t>Fal-staff-i-an</t></w>
@@ -53983,7 +53983,7 @@
<w><t>fan-ci-ful-ness</t></w>
<w><t>fan-ci-less</t></w>
<w><t>fan-ci-ness</t></w>
-<w><t>fan-cy</t></w>
+<w><t>fan-cy</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb><adjective><extensible/></adjective></w>
<phrase><t>fan-cy dress</t></phrase>
<w><t>fan-cy=free</t></w>
<phrase><t>fan-cy goods</t></phrase>
@@ -54263,7 +54263,7 @@
<w><t>fas-tig-i-ums</t></w>
<phrase><t>fast mo-tion</t></phrase>
<w><t>fast=mov-ing</t></w>
-<w><t>fast-ness</t></w>
+<w><t>fast-ness</t><noun><pluralizable/></noun></w>
<phrase><t>fast neu-tron</t></phrase>
<phrase><t>fast re-ac-tor</t></phrase>
<w><t>fas-tu-ous</t></w>
@@ -54377,8 +54377,7 @@
<w><t>fauld</t></w>
<w><t>Faulk-ner</t></w>
<w><t>fault</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
-<w><t>fault-find-er</t></w>
-<w><t>fault-find-ing</t></w>
+<w><t>fault=find-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fault=find-ing</t></w>
<w><t>fault-i-er</t></w>
<w><t>fault-i-est</t></w>
@@ -54727,6 +54726,7 @@
<w><t>fel-lahs</t></w>
<w><t>fel-la-ti-o</t></w>
<w><t>fel-la-tion</t></w>
+<w><t>felled</t><verb/></w>
<w><t>fell-er</t></w>
<w><t>Fel-ler</t></w>
<w><t>fel-ler</t></w>
@@ -54742,7 +54742,7 @@
<phrase><t>fel-low feel-ing</t></phrase>
<w><t>fel-low-man</t></w>
<w><t>fel-low=man</t></w>
-<w><t>fel-low-ship</t></w>
+<w><t>fel-low-ship</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fel-low-shiped</t></w>
<w><t>fel-low-ship-ing</t></w>
<w><t>fel-low-shipped</t></w>
@@ -56196,7 +56196,7 @@
<w><t>flam-boy-an-cy</t></w>
<w><t>flam-boy-ant</t></w>
<w><t>flam-boy-ant-ly</t></w>
-<w><t>flame</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>flame</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>flame=col-ored</t></w>
<w><t>flame-fish</t></w>
<w><t>flame-fish-es</t></w>
@@ -56478,7 +56478,7 @@
<w><t>flense</t></w>
<w><t>flens-er</t></w>
<w><t>flens-ing</t></w>
-<w><t>flesh</t></w>
+<w><t>flesh</t><noun><singular/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>flesh=col-ored</t></w>
<w><t>flesh-er</t></w>
<w><t>flesh-hook</t></w>
@@ -57028,7 +57028,7 @@
<w><t>flux</t></w>
<phrase><t>flux den-si-ty</t></phrase>
<w><t>flux-graph</t></w>
-<w><t>flux-ion</t></w>
+<w><t>flux-ion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>flux-ion-al</t></w>
<w><t>flux-ion-al-ly</t></w>
<w><t>flux-ion-ar-y</t></w>
@@ -57128,7 +57128,7 @@
<w><t>Foch</t></w>
<w><t>fo-ci</t></w>
<w><t>fo-com-e-ter</t></w>
-<w><t>fo-cus</t></w>
+<w><t>fo-cus</t><noun><singular/></noun><verb><regular-root/></verb></w>
<w><t>fo-cus-a-ble</t></w>
<w><t>fo-cused</t></w>
<w><t>fo-cus-er</t></w>
@@ -57384,7 +57384,7 @@
<w><t>foot-plate</t></w>
<w><t>foot=pound-al</t></w>
<w><t>foot=pound=sec-ond</t></w>
-<w><t>foot-print</t></w>
+<w><t>foot-print</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>foot-rest</t></w>
<w><t>foot-rope</t></w>
<w><t>foots</t></w>
@@ -57491,7 +57491,7 @@
<w><t>for-cip-i-al</t></w>
<w><t>for-ci-pres-sure</t></w>
<w><t>Ford</t></w>
-<w><t>ford</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>ford</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>ford-a-ble</t></w>
<w><t>for-did</t></w>
<w><t>Ford-ize</t></w>
@@ -58117,7 +58117,7 @@
<w><t>fouls</t></w>
<w><t>foul=up</t></w>
<w><t>fou-mart</t></w>
-<w><t>found</t></w>
+<w><t>found</t><verb><regular-root/></verb></w>
<w><t>foun-da-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>foun-da-tion-al</t></w>
<w><t>foun-da-tion-al-ly</t></w>
@@ -58492,7 +58492,7 @@
<w><t>fray</t></w>
<w><t>fraze</t></w>
<w><t>Fra-zer</t></w>
-<w><t>Fra-zier</t></w>
+<w><t>Fra-zier</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fra-zil</t></w>
<w><t>fraz-ing</t></w>
<w><t>fraz-zle</t></w>
@@ -58665,8 +58665,8 @@
<w><t>fremd-ly</t></w>
<w><t>fremd-ness</t></w>
<w><t>frem-i-tus</t></w>
-<w><t>Fre-mont</t></w>
-<w><t>Fré-mont</t></w>
+<w><t>Fre-mont</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>Fré-mont</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fre-nate</t></w>
<w><t>French</t></w>
<phrase><t>French A-cad-e-my</t></phrase>
@@ -58898,7 +58898,7 @@
<w><t>frill-y</t></w>
<w><t>Fri-maire</t></w>
<w><t>Friml</t></w>
-<w><t>fringe</t></w>
+<w><t>fringe</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<phrase><t>fringe ben-e-fit</t></phrase>
<phrase><t>fringed or-chis</t></phrase>
<w><t>fringe-head</t></w>
@@ -59409,7 +59409,7 @@
<w><t>fum-bler</t></w>
<w><t>fum-bling-ly</t></w>
<w><t>fum-bling-ness</t></w>
-<w><t>fume</t></w>
+<w><t>fume</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>fu-mé</t></w>
<phrase><t>fume cup-board</t></phrase>
<w><t>fumed</t></w>
@@ -59613,7 +59613,7 @@
<w><t>fur-row-y</t></w>
<w><t>fur-ry</t></w>
<phrase><t>Fur Seal Is-lands</t></phrase>
-<w><t>fur-ther</t></w>
+<w><t>fur-ther</t><verb><regular-root/></verb></w>
<w><t>fur-ther-ance</t></w>
<phrase><t>fur-ther ed-u-ca-tion</t></phrase>
<w><t>fur-ther-more</t></w>
@@ -59897,7 +59897,7 @@
<w><t>gain-a-ble</t></w>
<w><t>gaine</t></w>
<w><t>gain-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
-<w><t>Gaines</t></w>
+<w><t>Gaines</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Gaines-ville</t></w>
<w><t>gain-ful</t></w>
<w><t>gain-ful-ly</t></w>
@@ -60102,7 +60102,7 @@
<w><t>gal-loon</t></w>
<w><t>gal-looned</t></w>
<w><t>gal-loot</t></w>
-<w><t>gal-lop</t></w>
+<w><t>gal-lop</t><verb><regular-root/></verb></w>
<w><t>gal-lo-pade</t></w>
<w><t>gal-lop-er</t></w>
<w><t>gal-lop-ing</t></w>
@@ -60486,7 +60486,7 @@
<w><t>gar-net</t></w>
<w><t>Gar-net</t></w>
<w><t>gar-net-like</t></w>
-<w><t>Gar-nett</t></w>
+<w><t>Gar-nett</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>gar-nett</t></w>
<w><t>gar-nett-er</t></w>
<w><t>gar-ni</t></w>
@@ -60575,7 +60575,7 @@
<w><t>gas-es</t></w>
<phrase><t>gas fix-ture</t></phrase>
<phrase><t>gas gan-grene</t></phrase>
-<w><t>gash</t></w>
+<w><t>gash</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>gas-hold-er</t></w>
<w><t>gas-i-fi-a-ble</t></w>
<w><t>gas-i-fi-ca-tion</t></w>
@@ -61267,7 +61267,7 @@
<w><t>gen-til-i-ty</t></w>
<w><t>gen-ti-sate</t></w>
<w><t>gen-ti-sin</t></w>
-<w><t>gen-tle</t></w>
+<w><t>gen-tle</t><verb><regular-root/></verb><adjective><extensible/></adjective></w>
<phrase><t>gen-tle breeze</t></phrase>
<w><t>gen-tle-folk</t></w>
<w><t>gen-tle-folks</t></w>
@@ -61649,7 +61649,7 @@
<w><t>ges-tic-u-la-to-ry</t></w>
<w><t>ges-tion</t></w>
<w><t>ges-tur-al</t></w>
-<w><t>ges-ture</t></w>
+<w><t>ges-ture</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>ges-tured</t></w>
<w><t>ges-ture-less</t></w>
<w><t>ges-tur-er</t></w>
@@ -61805,7 +61805,7 @@
<phrase><t>Gibbs func-tion</t></phrase>
<w><t>gibbs-ite</t></w>
<w><t>Gib-by</t></w>
-<w><t>gibe</t></w>
+<w><t>gibe</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Gib-e-on</t></w>
<w><t>Gib-e-on-ite</t></w>
<w><t>gib-er</t></w>
@@ -62064,7 +62064,7 @@
<w><t>gird-er-less</t></w>
<w><t>gird-ing</t></w>
<w><t>gird-ing-ly</t></w>
-<w><t>gir-dle</t></w>
+<w><t>gir-dle</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>gir-dle-cake</t></w>
<w><t>gir-dle-like</t></w>
<w><t>gir-dler</t></w>
@@ -62180,7 +62180,7 @@
<w><t>glad-dest</t></w>
<w><t>glad-ding</t></w>
<w><t>glad-don</t></w>
-<w><t>glade</t></w>
+<w><t>glade</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>glade-like</t></w>
<w><t>Glade-wa-ter</t></w>
<w><t>glad=hand-er</t></w>
@@ -62248,7 +62248,7 @@
<w><t>glan-du-lous-ness</t></w>
<w><t>glans</t></w>
<w><t>Glan-ville=Hicks</t></w>
-<w><t>glare</t></w>
+<w><t>glare</t><noun><singular/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>glare-less</t></w>
<w><t>glar-i-er</t></w>
<w><t>glar-i-est</t></w>
@@ -62329,7 +62329,7 @@
<w><t>gleam</t><verb><regular-root/></verb></w>
<w><t>gleam-ing-ly</t></w>
<w><t>gleam-less</t></w>
-<w><t>glean</t></w>
+<w><t>glean</t><verb><regular-root/></verb></w>
<w><t>glean-a-ble</t></w>
<w><t>glean-er</t></w>
<w><t>glean-ing</t></w>
@@ -63405,7 +63405,7 @@
<w><t>Gor-en</t></w>
<phrase><t>go-reng pi-sang</t></phrase>
<w><t>Gor-gas</t></w>
-<w><t>gorge</t></w>
+<w><t>gorge</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>gorge-a-ble</t></w>
<w><t>gorged</t></w>
<w><t>gorg-ed-ly</t></w>
@@ -63796,8 +63796,7 @@
<w><t>Gra-na-da</t></w>
<w><t>gran-a-dil-la</t></w>
<w><t>Gra-na-dos</t></w>
-<w><t>gran-a-ry</t></w>
-<w><t>gra-na-ry</t></w>
+<w><t>gra-na-ry</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>Gran Ca-na-ria</t></phrase>
<phrase><t>gran cas-sa</t></phrase>
<phrase><t>Gran Cha-co</t></phrase>
@@ -64194,7 +64193,7 @@
<w><t>gray-wacke</t></w>
<w><t>gray-weth-er</t></w>
<w><t>Graz</t></w>
-<w><t>graze</t></w>
+<w><t>graze</t><verb><regular-root/></verb></w>
<w><t>graze-a-ble</t></w>
<w><t>graz-er</t></w>
<w><t>Gra-zia</t></w>
@@ -65116,7 +65115,7 @@
<w><t>Gue-rick-e</t></w>
<w><t>Gue-rick-i-an</t></w>
<w><t>gue-ri-don</t></w>
-<w><t>gue-ril-la</t></w>
+<w><t>gue-ril-la</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>gue-ril-la-ism</t></w>
<w><t>gué-rite</t></w>
<w><t>Guer-ni-ca</t></w>
@@ -65361,7 +65360,7 @@
<w><t>Gun-nar</t></w>
<w><t>gunned</t></w>
<w><t>gun-nel</t></w>
-<w><t>gun-ner</t></w>
+<w><t>gun-ner</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>gun-ner-ship</t></w>
<w><t>gun-ner-y</t></w>
<w><t>gun-ning</t></w>
@@ -66821,7 +66820,7 @@
<w><t>hand-fast-feed-ing</t></w>
<w><t>hand-fast-ing</t></w>
<w><t>hand-feed</t></w>
-<w><t>hand-ful</t></w>
+<w><t>hand-ful</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>hand gre-nade</t></phrase>
<w><t>hand-grip</t></w>
<w><t>hand-gun</t></w>
@@ -67264,7 +67263,7 @@
<w><t>har-mo-tom-ic</t></w>
<w><t>Harms-worth</t></w>
<w><t>Har-nack</t></w>
-<w><t>har-ness</t></w>
+<w><t>har-ness</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<phrase><t>har-nessed an-te-lope</t></phrase>
<w><t>har-ness-er</t></w>
<phrase><t>har-ness hitch</t></phrase>
@@ -67321,7 +67320,7 @@
<w><t>Har-ri-man</t></w>
<w><t>Har-ris</t></w>
<w><t>Har-ris-burg</t></w>
-<w><t>Har-ri-son</t></w>
+<w><t>Har-ri-son</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Har-ri-son-ville</t></w>
<phrase><t>Har-ris Tweed</t></phrase>
<w><t>Har-rods-burg</t></w>
@@ -67737,7 +67736,7 @@
<w><t>hdqrs</t></w>
<w><t>he</t></w>
<w><t>head</t></w>
-<w><t>head-ache</t></w>
+<w><t>head-ache</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>head-ach-y</t></w>
<phrase><t>head ar-range-ment</t></phrase>
<w><t>head-band</t></w>
@@ -68631,7 +68630,7 @@
<w><t>he-mip-ter-ous</t></w>
<w><t>hemisco-tosis</t></w>
<w><t>hem-i-sco-to-sis</t></w>
-<w><t>hem-i-sphere</t></w>
+<w><t>hem-i-sphere</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>hem-i-spher-ic</t></w>
<w><t>hem-i-spher-i-cal</t></w>
<w><t>hem-i-spher-i-cal-ly</t></w>
@@ -69218,7 +69217,7 @@
<w><t>hes-i-tan-cy</t></w>
<w><t>hes-i-tant</t></w>
<w><t>hes-i-tant-ly</t></w>
-<w><t>hes-i-tate</t></w>
+<w><t>hes-i-tate</t><verb><regular-root/></verb></w>
<w><t>hes-i-tat-ed</t></w>
<w><t>hes-i-tat-er</t></w>
<w><t>hes-i-tat-ing</t></w>
@@ -69516,7 +69515,7 @@
<w><t>H=hour</t></w>
<w><t>Hi-a-le-ah</t></w>
<phrase><t>hi-a-tal her-ni-a</t></phrase>
-<w><t>hi-a-tus</t></w>
+<w><t>hi-a-tus</t><noun/></w>
<w><t>hi-a-tus-es</t></w>
<phrase><t>hi-a-tus her-ni-a</t></phrase>
<w><t>Hi-a-wath-a</t></w>
@@ -69573,7 +69572,7 @@
<w><t>hid-den-ite</t></w>
<w><t>hid-den-ly</t></w>
<w><t>hid-den-ness</t></w>
-<w><t>hide</t></w>
+<w><t>hide</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root value="false"/></verb></w>
<w><t>hide-a-way</t></w>
<w><t>hide-bound</t></w>
<w><t>hide-bound-ness</t></w>
@@ -69827,7 +69826,7 @@
<w><t>hil-loa</t></w>
<w><t>hil-loaed</t></w>
<w><t>hil-loa-ing</t></w>
-<w><t>hill-ock</t></w>
+<w><t>hill-ock</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>hill-ocked</t></w>
<w><t>hill-ock-y</t></w>
<w><t>hil-loed</t></w>...
[truncated message content] |
|
From: <vic...@us...> - 2024-05-10 16:59:55
|
Revision: 13333
http://sourceforge.net/p/foray/code/13333
Author: victormote
Date: 2024-05-10 16:59:52 +0000 (Fri, 10 May 2024)
Log Message:
-----------
Improvements to dictionaries and orthographies.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/fre-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/grc-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/ita-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/orthographies/foray-orthography-config.xml
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml 2024-05-09 20:58:57 UTC (rev 13332)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml 2024-05-10 16:59:52 UTC (rev 13333)
@@ -43,7 +43,8 @@
<w><t>draught-i-ly</t></w>
<w><t>draught-i-ness</t></w>
<w><t>draughts-board</t></w>
-<w><t>draughts-man</t></w>
+<w><t>draughts-man</t><noun><singular/></noun></w>
+<w><t>draughts-men</t><noun><plural/></noun></w>
<w><t>draught-y</t></w>
<word-placeholder><t>en-deav-or</t><different-country country="USA"/></word-placeholder>
<w><t>en-deav-our</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml 2024-05-09 20:58:57 UTC (rev 13332)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml 2024-05-10 16:59:52 UTC (rev 13333)
@@ -63,8 +63,8 @@
<w><t>la-bor-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<word-placeholder><t>labour</t><different-country country="GBR"/></word-placeholder>
<w><t>ma-neu-ver</t><verb><regular-root/></verb></w>
-<word-placeholder><t>ma-noeu-vre</t><different-country country="GBR"/></word-placeholder>
-<word-placeholder><t>ma-nœu-vre</t><different-country country="GBR"/></word-placeholder>
+<word-placeholder><t>manoeuvre</t><different-country country="GBR"/></word-placeholder>
+<word-placeholder><t>manœuvre</t><different-country country="GBR"/></word-placeholder>
<w><t>mod-eled</t><verb/></w>
<w><t>mod-el-ing</t><noun><singular/><convertible-to-possessive/></noun><verb/></w>
<w><t>mold</t><noun><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml 2024-05-09 20:58:57 UTC (rev 13332)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ-epoch-01.dict.xml 2024-05-10 16:59:52 UTC (rev 13333)
@@ -42,6 +42,7 @@
<w><t>eat-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>E-paph-ro-di-tus</t></w>
<w><t>esqrs</t><abbrev referenced-word="esquires"/></w>
+<w><t>ex-alt-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>excell’cy</t><abbrev referenced-word="excellency"/></w>
<w><t>ex-pound-eth</t><verb><regular-root value="false"/></verb></w>
<w><t>ex-ult-eth</t><verb><regular-root value="false"/></verb></w>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml 2024-05-09 20:58:57 UTC (rev 13332)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml 2024-05-10 16:59:52 UTC (rev 13333)
@@ -826,7 +826,7 @@
<w><t>ac-cess</t></w>
<w><t>ac-ces-sa-ri-ly</t></w>
<w><t>ac-ces-sa-ri-ness</t></w>
-<w><t>ac-ces-sa-ry</t></w>
+<w><t>ac-ces-sa-ry</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ac-ces-si-bil-i-ty</t></w>
<w><t>ac-ces-si-ble</t></w>
<w><t>ac-ces-si-bly</t></w>
@@ -841,7 +841,7 @@
<w><t>ac-ces-so-rize</t></w>
<w><t>ac-ces-so-rized</t></w>
<w><t>ac-ces-so-riz-ing</t></w>
-<w><t>ac-ces-so-ry</t></w>
+<w><t>ac-ces-so-ry</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>ac-ces-so-ry fruit</t></phrase>
<phrase><t>ac-ces-so-ry nerve</t></phrase>
<phrase><t>ac-cess road</t></phrase>
@@ -885,7 +885,7 @@
<w><t>ac-cli-ma-tized</t></w>
<w><t>ac-cli-ma-tiz-ing</t></w>
<w><t>ac-cliv-i-tous</t></w>
-<w><t>ac-cliv-i-ty</t></w>
+<w><t>ac-cliv-i-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ac-cli-vous</t></w>
<w><t>ac-co-lade</t></w>
<w><t>ac-co-lad-ed</t></w>
@@ -1953,7 +1953,7 @@
<w><t>ad-just-ment-al</t></w>
<w><t>ad-jus-tor</t></w>
<w><t>ad-ju-tan-cy</t></w>
-<w><t>ad-ju-tant</t></w>
+<w><t>ad-ju-tant</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>ad-ju-tant bird</t></phrase>
<phrase><t>ad-ju-tant gen-er-al</t></phrase>
<w><t>ad-ju-vant</t></w>
@@ -2702,7 +2702,7 @@
<w><t>af-fri-cate</t></w>
<w><t>af-fri-ca-tion</t></w>
<w><t>af-fric-a-tive</t></w>
-<w><t>af-fright</t></w>
+<w><t>af-fright</t><verb><regular-root/></verb></w>
<w><t>af-front</t></w>
<w><t>af-fron-té</t></w>
<w><t>af-front-ed-ly</t></w>
@@ -3096,7 +3096,7 @@
<w><t>ag-o-niz-ed-ly</t></w>
<w><t>ag-o-niz-ing</t></w>
<w><t>ag-o-niz-ing-ly</t></w>
-<w><t>ag-o-ny</t></w>
+<w><t>ag-o-ny</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>ag-o-ny col-umn</t></phrase>
<w><t>ag-o-ra</t></w>
<w><t>a-go-ra</t></w>
@@ -3251,9 +3251,11 @@
<w><t>A-ï-da</t></w>
<w><t>Ai-dan</t></w>
<w><t>aide</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>aide=de=camp</t><noun><singular/><convertible-to-possessive/></noun></w>
<w><t>aide=mé-moire</t></w>
<w><t>aide=m-moire</t></w>
<w><t>aid-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>aides=de=camp</t><noun><plural/><convertible-to-possessive/></noun></w>
<w><t>aides=mé-moire</t></w>
<w><t>aid-ful</t></w>
<w><t>Ai-din</t></w>
@@ -4973,7 +4975,7 @@
<w><t>am-bu-lac-ra</t></w>
<w><t>am-bu-lac-ral</t></w>
<w><t>am-bu-lac-rum</t></w>
-<w><t>am-bu-lance</t></w>
+<w><t>am-bu-lance</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>am-bu-lance chas-er</t></phrase>
<w><t>am-bu-lant</t></w>
<w><t>am-bu-lante</t></w>
@@ -6638,7 +6640,7 @@
<w><t>an-o-dized</t></w>
<w><t>an-o-diz-ing</t></w>
<w><t>an-o-don-tia</t></w>
-<w><t>an-o-dyne</t></w>
+<w><t>an-o-dyne</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>an-o-e-sia</t></w>
<w><t>an-o-e-sis</t></w>
<w><t>an-oes-trus</t></w>
@@ -8410,7 +8412,7 @@
<w><t>ap-pa-ra-tchik</t></w>
<w><t>ap-pa-rat-tus</t></w>
<w><t>ap-pa-rat-tus-es</t></w>
-<w><t>ap-pa-rat-us</t></w>
+<w><t>ap-pa-rat-us</t><noun><singular/><convertible-to-possessive/></noun></w>
<phrase><t>ap-pa-rat-us crit-i-cus</t></phrase>
<w><t>ap-par-el</t></w>
<w><t>ap-par-eled</t></w>
@@ -8491,7 +8493,7 @@
<w><t>ap-per-tain</t><verb><regular-root/></verb></w>
<w><t>ap-pes-tat</t></w>
<w><t>ap-pe-tence</t></w>
-<w><t>ap-pe-ten-cy</t></w>
+<w><t>ap-pe-ten-cy</t><noun><pluralizable/></noun></w>
<w><t>ap-pe-tis-er</t></w>
<w><t>ap-pe-tis-ing</t></w>
<w><t>ap-pe-tite</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -9055,7 +9057,7 @@
<w><t>Ar-che-o-zo-ic</t></w>
<w><t>Ar-chep-tol-e-mus</t></w>
<w><t>Arch-er</t></w>
-<w><t>arch-er</t></w>
+<w><t>arch-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Ar-cher</t></w>
<w><t>arch-er-fish</t></w>
<w><t>ar-cher-fish</t></w>
@@ -9856,7 +9858,7 @@
<w><t>ar-ti-fi-cial-ness</t></w>
<phrase><t>ar-ti-fi-cial res-pi-ra-tion</t></phrase>
<w><t>Ar-ti-gas</t></w>
-<w><t>ar-til-ler-ist</t></w>
+<w><t>ar-til-ler-ist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ar-til-ler-y</t></w>
<w><t>ar-til-ler-y-man</t></w>
<phrase><t>ar-til-ler-y plant</t></phrase>
@@ -10812,7 +10814,7 @@
<w><t>a-tin-gle</t></w>
<w><t>a-tip-toe</t></w>
<w><t>At-kins</t></w>
-<w><t>At-kin-son</t></w>
+<w><t>At-kin-son</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>At-lan-ta</t></w>
<w><t>at-lan-tad</t></w>
<w><t>at-lan-tal</t></w>
@@ -11708,7 +11710,7 @@
<w><t>a-vail-a-ble-ness</t></w>
<w><t>a-vail-a-bly</t></w>
<w><t>a-vail-ing-ly</t></w>
-<w><t>av-a-lanche</t></w>
+<w><t>av-a-lanche</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>av-a-lanched</t></w>
<w><t>av-a-lanch-ing</t></w>
<w><t>Av-al-lon</t></w>
@@ -12902,12 +12904,13 @@
<w><t>bal-lon</t></w>
<w><t>bal-lo-net</t></w>
<w><t>bal-lon-né</t></w>
-<w><t>bal-loon</t></w>
+<w><t>bal-loon</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bal-loon=ber-ries</t></w>
<w><t>bal-loon=ber-ry</t></w>
<w><t>bal-loon-er</t></w>
<w><t>bal-loon-fish</t></w>
<w><t>bal-loon-fish-es</t></w>
+<w><t>bal-loon-ist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bal-loon-like</t></w>
<phrase><t>bal-loon sail</t></phrase>
<phrase><t>bal-loon sleeve</t></phrase>
@@ -13175,7 +13178,7 @@
<w><t>bank-rupt</t><verb><regular-root/></verb><adjective></adjective></w>
<w><t>bank-rupt-cy</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bank-rupt-ly</t></w>
-<w><t>Banks</t></w>
+<w><t>Banks</t><noun><convertible-to-possessive/></noun></w>
<w><t>bank-si-a</t></w>
<w><t>Bank-side</t></w>
<phrase><t>Banks Is-land</t></phrase>
@@ -13648,7 +13651,7 @@
<w><t>Bar-rett</t></w>
<w><t>bar-rette</t></w>
<w><t>bar-ret-ter</t></w>
-<w><t>bar-ri-cade</t></w>
+<w><t>bar-ri-cade</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bar-ri-cad-ed</t></w>
<w><t>bar-ri-cad-er</t></w>
<w><t>bar-ri-cad-ing</t></w>
@@ -14063,7 +14066,7 @@
<w><t>bat-ten</t></w>
<w><t>Bat-ten-burg</t></w>
<w><t>bat-ten-er</t></w>
-<w><t>bat-ter</t></w>
+<w><t>bat-ter</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<phrase><t>bat-tered ba-by</t></phrase>
<w><t>bat-te-rie</t></w>
<w><t>bat-ter-ies</t></w>
@@ -14090,7 +14093,7 @@
<w><t>bat-tle-field</t></w>
<w><t>bat-tle-front</t></w>
<w><t>bat-tle-ground</t></w>
-<w><t>bat-tle-ment</t></w>
+<w><t>bat-tle-ment</t><noun><pluralizable/><convertible-to-possessive></convertible-to-possessive></noun></w>
<w><t>bat-tle-ment-ed</t></w>
<w><t>bat-tle-piece</t></w>
<w><t>bat-tle-plane</t></w>
@@ -15115,7 +15118,7 @@
<w><t>Ben-e-dict</t></w>
<w><t>Ben-e-dic-ta</t></w>
<w><t>Ben-e-dic-tine</t></w>
-<w><t>ben-e-dic-tion</t></w>
+<w><t>ben-e-dic-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ben-e-dic-tion-al</t></w>
<w><t>ben-e-dic-tion-a-le</t></w>
<w><t>ben-e-dic-to-ry</t></w>
@@ -15840,7 +15843,7 @@
<w><t>bi=bi-va-lent</t></w>
<w><t>bibl</t></w>
<w><t>Bibl</t></w>
-<w><t>Bi-ble</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>bi-ble</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Bi-ble=bash-er</t></w>
<phrase><t>Bi-ble Belt</t></phrase>
<phrase><t>Bi-ble pa-per</t></phrase>
@@ -16792,7 +16795,7 @@
<w><t>Biysk</t></w>
<w><t>Bi-ysk</t></w>
<w><t>biz</t></w>
-<w><t>bi-zarre</t></w>
+<w><t>bi-zarre</t><adjective/></w>
<w><t>bi-zarre-ly</t></w>
<w><t>bi-zarre-ness</t></w>
<w><t>bize</t></w>
@@ -16998,7 +17001,7 @@
<w><t>Blanc</t></w>
<w><t>Blan-ca-nus</t></w>
<w><t>Blanch</t></w>
-<w><t>blanch</t></w>
+<w><t>blanch</t><verb><regular-root/></verb></w>
<w><t>Blan-chard</t></w>
<w><t>Blanche</t></w>
<w><t>blanch-er</t></w>
@@ -17019,7 +17022,7 @@
<w><t>blank-book</t></w>
<phrase><t>blank car-tridge</t></phrase>
<phrase><t>blank en-dorse-ment</t></phrase>
-<w><t>blan-ket</t></w>
+<w><t>blan-ket</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>blan-ket=flow-er</t></w>
<w><t>blan-ket-ing</t></w>
<w><t>blan-ket-less</t></w>
@@ -19673,7 +19676,7 @@
<w><t>Bri-eux</t></w>
<w><t>brig</t></w>
<w><t>Brig</t></w>
-<w><t>bri-gade</t></w>
+<w><t>bri-gade</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bri-gad-ed</t></w>
<w><t>brig-a-dier</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>brig-a-dier gen-er-al</t></phrase>
@@ -20036,7 +20039,7 @@
<w><t>Bronx</t></w>
<w><t>Bronx-ite</t></w>
<w><t>Bronx-ville</t></w>
-<w><t>bronze</t></w>
+<w><t>bronze</t><verb><regular-root/></verb><adjective/></w>
<w><t>bronze-like</t></w>
<phrase><t>bronze med-al</t></phrase>
<w><t>bronz-ing</t></w>
@@ -20994,7 +20997,7 @@
<w><t>bur-noused</t></w>
<w><t>burn-out</t></w>
<w><t>Burns</t></w>
-<w><t>Burn-side</t></w>
+<w><t>Burn-side</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>burn-sides</t></w>
<w><t>burnt</t></w>
<phrase><t>burnt al-mond</t></phrase>
@@ -21152,7 +21155,7 @@
<w><t>bus-tic</t></w>
<w><t>bust-i-er</t></w>
<w><t>bust-i-est</t></w>
-<w><t>bus-tle</t></w>
+<w><t>bus-tle</t><noun><singular/></noun><verb><regular-root/></verb></w>
<w><t>bus-tled</t></w>
<w><t>bus-tler</t></w>
<w><t>bus-tling-ly</t></w>
@@ -22329,7 +22332,7 @@
<w><t>cam-pa-gna</t></w>
<w><t>Cam-pa-gne</t></w>
<w><t>cam-pa-gus</t></w>
-<w><t>cam-paign</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>cam-paign</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>cam-paign-er</t></w>
<w><t>Cam-pa-nia</t></w>
<w><t>Cam-pa-ni-a</t></w>
@@ -22671,7 +22674,7 @@
<w><t>can-non-ad-ing</t></w>
<w><t>can-non-ball</t></w>
<phrase><t>can-non bone</t></phrase>
-<w><t>can-non-eer</t></w>
+<w><t>can-non-eer</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>can-non-eer-ing</t></w>
<phrase><t>can-non fod-der</t></phrase>
<w><t>can-non-ry</t></w>
@@ -22859,7 +22862,7 @@
<w><t>ca-pac-i-tor</t></w>
<w><t>ca-pac-i-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Ca-pa-ne-us</t></w>
-<w><t>ca-par-i-son</t></w>
+<w><t>ca-par-i-son</t><noun/><verb><regular-root/></verb></w>
<w><t>ca-pa-ta-ces</t></w>
<w><t>ca-pa-taz</t></w>
<w><t>cape</t></w>
@@ -23650,7 +23653,7 @@
<w><t>Car-pen-tier</t></w>
<w><t>car-pen-try</t></w>
<w><t>carp-er</t></w>
-<w><t>car-pet</t></w>
+<w><t>car-pet</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>car-pet-bag</t></w>
<w><t>car-pet-bagged</t></w>
<w><t>car-pet-bag-ger</t></w>
@@ -23782,7 +23785,7 @@
<w><t>car-tel-lized</t></w>
<w><t>car-tel-liz-ing</t></w>
<w><t>cart-er</t></w>
-<w><t>Car-ter</t></w>
+<w><t>Car-ter</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Car-ter-et</t></w>
<w><t>Car-te-ret</t></w>
<w><t>Car-ters-ville</t></w>
@@ -24783,7 +24786,7 @@
<w><t>cel-e-bra-to-ry</t></w>
<w><t>cel-e-bret</t></w>
<w><t>Cel-e-brez-ze</t></w>
-<w><t>ce-leb-ri-ty</t></w>
+<w><t>ce-leb-ri-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ce-ler-i-ac</t></w>
<w><t>ce-ler-i-ty</t></w>
<w><t>cel-er-y</t></w>
@@ -25642,7 +25645,7 @@
<w><t>chan-celled</t></w>
<w><t>chan-cel-ler-ies</t></w>
<w><t>chan-cel-ler-y</t></w>
-<w><t>chan-cel-lor</t></w>
+<w><t>chan-cel-lor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>chan-cel-lor-ship</t></w>
<w><t>Chan-cel-lors-ville</t></w>
<w><t>chan-cel-lo-ry</t></w>
@@ -25667,7 +25670,7 @@
<w><t>Chan-der-na-gore</t></w>
<w><t>Chan-di-garh</t></w>
<w><t>chan-dler</t></w>
-<w><t>Chan-dler</t></w>
+<w><t>Chan-dler</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>chan-dler-ies</t></w>
<w><t>chan-dler-y</t></w>
<w><t>Chan-dra-gup-ta</t></w>
@@ -26752,7 +26755,7 @@
<w><t>chi-mer-i-cal-ly</t></w>
<w><t>chi-mer-i-cal-ness</t></w>
<w><t>Chim-kent</t></w>
-<w><t>chim-ney</t></w>
+<w><t>chim-ney</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>chim-ney breast</t></phrase>
<phrase><t>chim-ney cor-ner</t></phrase>
<w><t>chim-neyed</t></w>
@@ -28419,7 +28422,7 @@
<w><t>clans-wom-en</t></w>
<w><t>Clan-ton</t></w>
<w><t>clap</t></w>
-<w><t>clap-board</t></w>
+<w><t>clap-board</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>Clap-ham Sect</t></phrase>
<w><t>cla-po-tis</t></w>
<w><t>clap-per</t></w>
@@ -29198,7 +29201,7 @@
<w><t>clu-pe-oid</t></w>
<w><t>Clur-man</t></w>
<w><t>Clu-si-um</t></w>
-<w><t>clus-ter</t></w>
+<w><t>clus-ter</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>clus-tered</t></w>
<phrase><t>clus-ter fly</t></phrase>
<w><t>clus-ter-ing-ly</t></w>
@@ -32384,7 +32387,7 @@
<w><t>con-strain-er</t></w>
<w><t>con-strain-ing-ly</t></w>
<w><t>con-straint</t></w>
-<w><t>con-strict</t></w>
+<w><t>con-strict</t><verb><regular-root/></verb></w>
<w><t>con-stric-tion</t></w>
<w><t>con-stric-tive</t></w>
<w><t>con-stric-tor</t></w>
@@ -32932,7 +32935,7 @@
<w><t>con-verse-ly</t></w>
<w><t>con-vers-er</t></w>
<w><t>con-vers-ing</t></w>
-<w><t>con-ver-sion</t></w>
+<w><t>con-ver-sion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>con-ver-sion-al</t></w>
<w><t>con-ver-sion-ar-y</t></w>
<w><t>con-ver-sus</t></w>
@@ -33026,7 +33029,7 @@
<w><t>con-vol-vu-la-ceous</t></w>
<w><t>con-vol-vu-li</t></w>
<w><t>con-vol-vu-lus</t></w>
-<w><t>con-voy</t></w>
+<w><t>con-voy</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>con-vul-sant</t></w>
<w><t>con-vulse</t></w>
<w><t>con-vulsed</t></w>
@@ -33275,7 +33278,7 @@
<w><t>cop-per-smith</t></w>
<phrase><t>cop-per sul-phate</t></phrase>
<w><t>cop-per-y</t></w>
-<w><t>cop-pice</t></w>
+<w><t>cop-pice</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cop-piced</t></w>
<w><t>cop-ping</t></w>
<w><t>cop-ra</t></w>
@@ -34484,8 +34487,7 @@
<w><t>Cour-be-voie</t></w>
<phrase><t>cou-reur de bois</t></phrase>
<w><t>cour-gette</t></w>
-<w><t>cour-i-er</t></w>
-<w><t>cou-ri-er</t></w>
+<w><t>cour-i-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cour-lan</t></w>
<w><t>Cour-land</t></w>
<w><t>Cour-nand</t></w>
@@ -34905,7 +34907,7 @@
<w><t>cra-ni-ot-o-my</t></w>
<w><t>cra-ni-um</t></w>
<w><t>cra-ni-ums</t></w>
-<w><t>crank</t></w>
+<w><t>crank</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>crank-case</t></w>
<w><t>crank-i-er</t></w>
<w><t>crank-i-est</t></w>
@@ -35267,7 +35269,7 @@
<w><t>Cress-kill</t></w>
<w><t>cress-y</t></w>
<w><t>Cres-sy</t></w>
-<w><t>crest</t></w>
+<w><t>crest</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>crest-ed</t></w>
<phrase><t>crest-ed tit</t></phrase>
<w><t>crest-fall-en</t></w>
@@ -35676,7 +35678,7 @@
<w><t>cross-hatch-er</t></w>
<w><t>cross-head</t></w>
<w><t>cross=in-dex</t></w>
-<w><t>cross-ing</t></w>
+<w><t>cross-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>cross-ing o-ver</t></phrase>
<w><t>cross-jack</t></w>
<w><t>cross-lap</t></w>
@@ -36341,7 +36343,7 @@
<w><t>cul-ver</t></w>
<w><t>cul-ver-in</t></w>
<phrase><t>Cul-ver’s root</t></phrase>
-<w><t>cul-vert</t></w>
+<w><t>cul-vert</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cum</t></w>
<w><t>Cu-mae</t></w>
<w><t>Cu-mae-an</t></w>
@@ -36349,7 +36351,7 @@
<w><t>Cu-ma-ná</t></w>
<w><t>cu-ma-rin</t></w>
<w><t>cu-ma-rone</t></w>
-<w><t>cum-ber</t></w>
+<w><t>cum-ber</t><verb><regular-root/></verb></w>
<w><t>cum-ber-er</t></w>
<w><t>Cum-ber-land</t></w>
<w><t>cum-ber-less</t></w>
@@ -37842,7 +37844,7 @@
<w><t>das-y-u-roid</t></w>
<w><t>Das-yus</t></w>
<w><t>dat</t></w>
-<w><t>da-ta</t></w>
+<w><t>da-ta</t><noun><plural/></noun></w>
<phrase><t>da-ta bank</t></phrase>
<w><t>dat-a-ble</t></w>
<w><t>dat-a-ble-ness</t></w>
@@ -38588,7 +38590,7 @@
<w><t>de-cli-vent</t></w>
<w><t>de-cliv-i-tous</t></w>
<w><t>de-cliv-i-tous-ly</t></w>
-<w><t>de-cliv-i-ty</t></w>
+<w><t>de-cliv-i-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>de-cli-vous</t></w>
<w><t>Dec-lo-my-cin</t></w>
<w><t>de-clutch</t></w>
@@ -39420,7 +39422,7 @@
<w><t>De-li-us</t></w>
<w><t>de-liv-er</t><verb><regular-root/></verb></w>
<w><t>de-liv-er-a-ble</t></w>
-<w><t>de-liv-er-ance</t></w>
+<w><t>de-liv-er-ance</t><noun><pluralizable/></noun></w>
<w><t>de-liv-er-er</t></w>
<w><t>de-liv-er-ies</t></w>
<w><t>de-liv-er-ly</t></w>
@@ -40225,7 +40227,7 @@
<w><t>dep-o-si-tion-al</t></w>
<w><t>de-pos-i-tor</t></w>
<w><t>de-pos-i-to-ry</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
-<w><t>de-pot</t></w>
+<w><t>de-pot</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dep-ra-va-tion</t></w>
<w><t>de-prave</t></w>
<w><t>de-praved</t></w>
@@ -40271,7 +40273,7 @@
<w><t>de-press-i-ble</t></w>
<w><t>de-press-ing-ly</t></w>
<w><t>De-pres-sion</t></w>
-<w><t>de-pres-sion</t></w>
+<w><t>de-pres-sion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>de-pres-sive</t></w>
<w><t>de-pres-sive-ly</t></w>
<w><t>de-pres-sive-ness</t></w>
@@ -40755,7 +40757,7 @@
<w><t>des-ti-tute-ly</t></w>
<w><t>des-ti-tute-ness</t></w>
<w><t>des-ti-tut-ing</t></w>
-<w><t>des-ti-tu-tion</t></w>
+<w><t>des-ti-tu-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>de-stool</t></w>
<w><t>de-stool-ment</t></w>
<w><t>des-tri-er</t></w>
@@ -40808,7 +40810,7 @@
<w><t>des-ul-to-ri-ness</t></w>
<w><t>des-ul-to-ry</t></w>
<w><t>de-su-per-heat-er</t></w>
-<w><t>de-tach</t></w>
+<w><t>de-tach</t><verb><regular-root/></verb></w>
<w><t>de-tach-a-bil-i-ty</t></w>
<w><t>de-tach-a-ble</t></w>
<w><t>de-tached</t></w>
@@ -43161,7 +43163,7 @@
<w><t>dis-miss-i-ble</t></w>
<w><t>dis-mis-sion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-mis-sive</t></w>
-<w><t>dis-mount</t></w>
+<w><t>dis-mount</t><verb><regular-root/></verb></w>
<w><t>dis-mount-a-ble</t></w>
<w><t>dis-na-ture</t></w>
<w><t>dis-na-tured</t></w>
@@ -43317,7 +43319,7 @@
<w><t>dis-pos-a-ble</t></w>
<w><t>dis-pos-a-ble-ness</t></w>
<w><t>dis-pos-al</t></w>
-<w><t>dis-pose</t></w>
+<w><t>dis-pose</t><verb><regular-root/></verb></w>
<w><t>dis-posed</t></w>
<w><t>dis-pos-ed-ly</t></w>
<w><t>dis-pos-ed-ness</t></w>
@@ -45290,7 +45292,7 @@
<w><t>Dran-cy</t></w>
<w><t>drank</t></w>
<w><t>drap-a-ble</t></w>
-<w><t>drape</t></w>
+<w><t>drape</t><verb><regular-root/></verb></w>
<w><t>drape-a-ble</t></w>
<w><t>drap-er</t></w>
<w><t>Dra-per</t></w>
@@ -45557,7 +45559,7 @@
<w><t>drool-i-er</t></w>
<w><t>drool-i-est</t></w>
<w><t>drool-y</t></w>
-<w><t>droop</t></w>
+<w><t>droop</t><verb><regular-root/></verb></w>
<w><t>droop-i-er</t></w>
<w><t>droop-i-est</t></w>
<w><t>droop-i-ness</t></w>
@@ -46531,7 +46533,7 @@
<w><t>ear-li-ness</t></w>
<phrase><t>Earl Mar-shal</t></phrase>
<w><t>earl-ship</t></w>
-<w><t>Ear-ly</t></w>
+<w><t>Ear-ly</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ear-ly</t></w>
<phrase><t>ear-ly bird</t></phrase>
<phrase><t>Ear-ly Bird</t></phrase>
@@ -46604,7 +46606,7 @@
<w><t>earth-star</t></w>
<w><t>earth-ward</t></w>
<w><t>earth-wards</t></w>
-<w><t>earth-work</t></w>
+<w><t>earth-work</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>earth-worm</t></w>
<w><t>earth-y</t></w>
<phrase><t>ear trum-pet</t></phrase>
@@ -46726,7 +46728,7 @@
<w><t>eaves-dropped</t></w>
<w><t>eaves-drop-per</t></w>
<w><t>eaves-drop-ping</t></w>
-<w><t>ebb</t></w>
+<w><t>ebb</t><verb><regular-root/></verb></w>
<w><t>EBCDIC</t></w>
<w><t>Eb-e-ne-zer</t></w>
<w><t>Eb-ens-burg</t></w>
@@ -48355,11 +48357,11 @@
<w><t>e-mas-cu-la-to-ry</t></w>
<w><t>E-ma-thi-on</t></w>
<w><t>em-ba-cle</t></w>
-<w><t>em-balm</t></w>
-<w><t>em-balm-er</t></w>
+<w><t>em-balm</t><verb><regular-root/></verb></w>
+<w><t>em-balm-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>em-balm-ment</t></w>
-<w><t>em-bank</t></w>
-<w><t>em-bank-ment</t></w>
+<w><t>em-bank</t><verb><regular-root/></verb></w>
+<w><t>em-bank-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>em-bar</t></w>
<w><t>em-bar-ca-tion</t></w>
<w><t>em-bar-go</t><noun><singular/><convertible-to-possessive/></noun><verb></verb></w>
@@ -48865,7 +48867,7 @@
<w><t>en-caged</t></w>
<w><t>en-cag-ing</t></w>
<w><t>en-camp</t><verb><regular-root/></verb></w>
-<w><t>en-camp-ment</t></w>
+<w><t>en-camp-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>en-cap-su-late</t></w>
<w><t>en-cap-su-lat-ed</t></w>
<w><t>en-cap-su-lat-ing</t></w>
@@ -48946,7 +48948,7 @@
<w><t>en-ci-pher</t></w>
<w><t>en-ci-pher-er</t></w>
<w><t>en-ci-pher-ment</t></w>
-<w><t>en-cir-cle</t></w>
+<w><t>en-cir-cle</t><verb><regular-root/></verb></w>
<w><t>en-cir-cle-ment</t></w>
<w><t>Enc-ke</t></w>
<w><t>encl</t></w>
@@ -49285,7 +49287,7 @@
<w><t>en-fac-ing</t></w>
<phrase><t>en fa-mille</t></phrase>
<phrase><t>en-fant ter-ri-ble</t></phrase>
-<w><t>en-fee-ble</t></w>
+<w><t>en-fee-ble</t><verb><regular-root/></verb></w>
<w><t>en-fee-ble-ment</t></w>
<w><t>en-feoff</t></w>
<w><t>en-feoff-ment</t></w>
@@ -49300,7 +49302,7 @@
<w><t>en-flamed</t></w>
<w><t>en-flam-ing</t></w>
<w><t>en-fleu-rage</t></w>
-<w><t>en-fold</t></w>
+<w><t>en-fold</t><verb><regular-root/></verb></w>
<w><t>en-fold-er</t></w>
<w><t>en-fold-ment</t></w>
<w><t>en-force</t><verb><regular-root/></verb></w>
@@ -49852,7 +49854,7 @@
<w><t>en-tre-lac</t></w>
<w><t>en-tre-mets</t></w>
<w><t>en-trench</t><verb><regular-root/></verb></w>
-<w><t>en-trench-ment</t></w>
+<w><t>en-trench-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>en-tre nous</t></phrase>
<w><t>en-tre-p</t></w>
<w><t>en-tre-pot</t></w>
@@ -50562,7 +50564,7 @@
<w><t>e-quip</t><verb><regular-root/></verb></w>
<w><t>eq-ui-page</t></w>
<w><t>eq-ui-par-ti-tion</t></w>
-<w><t>e-quip-ment</t></w>
+<w><t>e-quip-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>eq-ui-poise</t></w>
<w><t>e-qui-poise</t></w>
<w><t>e-qui-poised</t></w>
@@ -52145,7 +52147,7 @@
<w><t>Ew-an</t></w>
<w><t>ewe</t></w>
<w><t>E-we</t></w>
-<w><t>Ew-ell</t></w>
+<w><t>Ew-ell</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ew-er</t></w>
<w><t>ew-er-ies</t></w>
<w><t>ew-er-y</t></w>
@@ -52948,7 +52950,7 @@
<w><t>ex-plo-si-bil-i-ty</t></w>
<w><t>ex-plo-si-ble</t></w>
<w><t>ex-plo-sim-e-ter</t></w>
-<w><t>ex-plo-sion</t></w>
+<w><t>ex-plo-sion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ex-plo-sive</t></w>
<w><t>ex-plo-sive-ly</t></w>
<w><t>ex-plo-sive-ness</t></w>
@@ -54594,7 +54596,7 @@
<w><t>fed-e-li-ni</t></w>
<w><t>fed-er-a-cy</t></w>
<w><t>fed-er-al</t><adjective/></w>
-<w><t>Fed-er-al</t></w>
+<w><t>Fed-er-al</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>fed-er-al dis-trict</t></phrase>
<w><t>fed-er-al-ese</t></w>
<w><t>fed-er-al-ise</t></w>
@@ -55942,7 +55944,7 @@
<w><t>fish-bolt</t></w>
<w><t>fish-bowl</t></w>
<phrase><t>fish ea-gle</t></phrase>
-<w><t>Fish-er</t></w>
+<w><t>Fish-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fish-er</t></w>
<w><t>fish-er-ies</t></w>
<w><t>fish-er-man</t><noun><singular/><convertible-to-possessive/></noun></w>
@@ -56241,7 +56243,7 @@
<w><t>flang-er</t></w>
<w><t>flange-way</t></w>
<w><t>flang-ing</t></w>
-<w><t>flank</t></w>
+<w><t>flank</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>flank-er</t></w>
<w><t>flan-nel</t></w>
<w><t>flan-nel-board</t></w>
@@ -57489,7 +57491,7 @@
<w><t>for-cip-i-al</t></w>
<w><t>for-ci-pres-sure</t></w>
<w><t>Ford</t></w>
-<w><t>ford</t></w>
+<w><t>ford</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ford-a-ble</t></w>
<w><t>for-did</t></w>
<w><t>Ford-ize</t></w>
@@ -57511,7 +57513,7 @@
<w><t>fore-bod-er</t></w>
<w><t>fore-bodes</t><verb><lemma>forebode</lemma></verb></w>
<w><t>fore-bod-ies</t></w>
-<w><t>fore-bod-ing</t></w>
+<w><t>fore-bod-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fore-bod-ing-ly</t></w>
<w><t>fore-bod-ing-ness</t></w>
<w><t>fore-bod-y</t></w>
@@ -58756,7 +58758,7 @@
<w><t>fresh-en</t></w>
<w><t>fresh-en-er</t></w>
<w><t>fresh-er</t></w>
-<w><t>fresh-et</t></w>
+<w><t>fresh-et</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fresh-ly</t></w>
<w><t>fresh-man</t></w>
<w><t>fresh-man-ic</t></w>
@@ -59126,7 +59128,7 @@
<w><t>fro-ward</t></w>
<w><t>fro-ward-ly</t></w>
<w><t>fro-ward-ness</t></w>
-<w><t>frown</t></w>
+<w><t>frown</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>frown-er</t></w>
<w><t>frown-ing-ly</t></w>
<w><t>frows-i-er</t></w>
@@ -59578,7 +59580,7 @@
<w><t>fur-men-ty</t></w>
<w><t>fur-me-ty</t></w>
<w><t>fur-mint</t></w>
-<w><t>fur-nace</t></w>
+<w><t>fur-nace</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fur-naced</t></w>
<w><t>fur-nace-like</t></w>
<w><t>fur-nac-ing</t></w>
@@ -60375,7 +60377,7 @@
<w><t>gaol-er</t></w>
<w><t>Ga-on</t></w>
<w><t>Ga-on-ic</t></w>
-<w><t>gap</t></w>
+<w><t>gap</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>gape</t></w>
<w><t>gap-er</t></w>
<w><t>gapes</t></w>
@@ -60470,7 +60472,7 @@
<w><t>gar-ish-ly</t></w>
<w><t>gar-ish-ness</t></w>
<w><t>Gar-land</t></w>
-<w><t>gar-land</t></w>
+<w><t>gar-land</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>gar-land-less</t></w>
<w><t>gar-land-like</t></w>
<w><t>gar-lic</t></w>
@@ -61435,8 +61437,8 @@
<w><t>Geor-gette</t></w>
<phrase><t>geor-gette crepe</t></phrase>
<w><t>Ge-or-gi</t></w>
-<w><t>Geor-gia</t></w>
-<w><t>Geor-gian</t></w>
+<w><t>Geor-gia</t><noun><singular/><convertible-to-possessive/></noun></w>
+<w><t>Geor-gian</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Geor-gi-an-a</t></w>
<phrase><t>Geor-gian Bay</t></phrase>
<w><t>geor-gic</t></w>
@@ -62407,7 +62409,7 @@
<w><t>glim-mer</t></w>
<w><t>glim-mer-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>glim-mer-ing-ly</t></w>
-<w><t>glimpse</t></w>
+<w><t>glimpse</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>glimps-er</t></w>
<w><t>glimps-ing</t></w>
<w><t>Glin-ka</t></w>
@@ -62423,7 +62425,7 @@
<w><t>glis-sad-er</t></w>
<w><t>glis-sad-ing</t></w>
<w><t>glis-san-do</t></w>
-<w><t>glis-ten</t></w>
+<w><t>glis-ten</t><verb><regular-root/></verb></w>
<w><t>glis-ten-ing-ly</t></w>
<w><t>glis-ter</t></w>
<w><t>glis-ter-ing-ly</t></w>
@@ -65329,7 +65331,7 @@
<w><t>gum-wood</t></w>
<w><t>gun</t></w>
<w><t>gu-na</t></w>
-<w><t>gun-boat</t></w>
+<w><t>gun-boat</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>gun-boat di-plo-ma-cy</t></phrase>
<phrase><t>gun car-riage</t></phrase>
<w><t>gun-cot-ton</t></w>
@@ -66762,7 +66764,7 @@
<w><t>Ham-mu-ra-pi</t></w>
<w><t>ham-my</t></w>
<w><t>Hamp-den</t></w>
-<w><t>ham-per</t></w>
+<w><t>ham-per</t><verb><regular-root/></verb></w>
<w><t>ham-pered-ly</t></w>
<w><t>ham-pered-ness</t></w>
<w><t>ham-per-er</t></w>
@@ -67538,7 +67540,7 @@
<w><t>haul-ier</t></w>
<w><t>haulm</t></w>
<w><t>Haunce</t></w>
-<w><t>haunch</t></w>
+<w><t>haunch</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>haunch-less</t></w>
<w><t>haunt</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>haunt-ed</t></w>
@@ -67621,7 +67623,7 @@
<w><t>haw-finch</t></w>
<w><t>Haw-haw</t></w>
<w><t>Haw-ick</t></w>
-<w><t>hawk</t></w>
+<w><t>hawk</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>hawk-bill</t></w>
<w><t>hawk-er</t></w>
<w><t>hawk-ey</t></w>
@@ -69802,7 +69804,7 @@
<w><t>Hil-de-garde</t></w>
<w><t>Hil-des-heim</t></w>
<w><t>hil-ding</t></w>
-<w><t>Hill</t></w>
+<w><t>Hill</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>hill</t></w>
<w><t>Hil-la</t></w>
<w><t>Hil-lard</t></w>
@@ -70040,7 +70042,7 @@
<w><t>his-pid-i-ty</t></w>
<w><t>his-pid-u-lous</t></w>
<w><t>Hiss</t></w>
-<w><t>hiss</t></w>
+<w><t>hiss</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>His-sar-lik</t></w>
<w><t>his-self</t></w>
<w><t>hiss-er</t></w>
@@ -70994,7 +70996,7 @@
<w><t>Hooke</t></w>
<w><t>hooked</t></w>
<w><t>hook-ed-ness</t></w>
-<w><t>Hook-er</t></w>
+<w><t>Hook-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>hook-er</t></w>
<w><t>hook-ey</t></w>
<w><t>hook-i-er</t></w>
@@ -72055,7 +72057,7 @@
<w><t>hurt-ful-ness</t></w>
<w><t>hurt-ing</t></w>
<w><t>hurt-le</t></w>
-<w><t>hur-tle</t></w>
+<w><t>hur-tle</t><verb><regular-root/></verb></w>
<w><t>hur-tle-ber-ry</t></w>
<w><t>hurt-less</t></w>
<w><t>hurt-less-ly</t></w>
@@ -74815,7 +74817,7 @@
<w><t>im-pet-u-ous</t></w>
<w><t>im-pet-u-ous-ly</t></w>
<w><t>im-pet-u-ous-ness</t></w>
-<w><t>im-pe-tus</t></w>
+<w><t>im-pe-tus</t><noun><singular/></noun></w>
<w><t>im-pe-tus-es</t></w>
<w><t>impf</t></w>
<w><t>Imp-hal</t></w>
@@ -77095,7 +77097,7 @@
<w><t>inn-less</t></w>
<w><t>in-no-cence</t></w>
<w><t>in-no-cen-cy</t></w>
-<w><t>in-no-cent</t></w>
+<w><t>in-no-cent</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective/></w>
<phrase><t>In-no-cent II</t></phrase>
<phrase><t>In-no-cent III</t></phrase>
<phrase><t>In-no-cent IV</t></phrase>
@@ -77455,7 +77457,7 @@
<w><t>in-sphered</t></w>
<w><t>in-spher-ing</t></w>
<w><t>in-spir-a-ble</t></w>
-<w><t>in-spi-ra-tion</t></w>
+<w><t>in-spi-ra-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>in-spi-ra-tion-al</t></w>
<w><t>in-spi-ra-tion-al-ly</t></w>
<w><t>in-spir-a-tive</t></w>
@@ -79286,7 +79288,7 @@
<w><t>in-un-date</t></w>
<w><t>in-un-dat-ed</t></w>
<w><t>in-un-dat-ing</t></w>
-<w><t>in-un-da-tion</t></w>
+<w><t>in-un-da-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>in-un-da-tor</t></w>
<w><t>in-un-da-to-ry</t></w>
<w><t>in-ur-bane</t></w>
@@ -80539,7 +80541,7 @@
<w><t>ith-y-phal-lic</t></w>
<w><t>i-tin-er-a-cy</t></w>
<w><t>i-tin-er-an-cy</t></w>
-<w><t>i-tin-er-ant</t></w>
+<w><t>i-tin-er-ant</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>i-tin-er-ant-ly</t></w>
<w><t>i-tin-er-ar-i-a</t></w>
<w><t>i-tin-er-ar-ies</t></w>
@@ -81845,7 +81847,7 @@
<w><t>Josh</t></w>
<w><t>josh</t></w>
<w><t>josh-er</t></w>
-<w><t>Josh-u-a</t></w>
+<w><t>Josh-u-a</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>Josh-u-a tree</t></phrase>
<w><t>Jo-si-ah</t><noun><convertible-to-possessive/></noun></w>
<w><t>Jo-si-as</t></w>
@@ -83001,7 +83003,7 @@
<w><t>Kel-logg</t></w>
<w><t>Kell-y</t></w>
<w><t>kel-ly</t></w>
-<w><t>Kel-ly</t></w>
+<w><t>Kel-ly</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ke-loid</t></w>
<w><t>ke-loi-dal</t></w>
<w><t>ke-lot-o-my</t></w>
@@ -83613,7 +83615,7 @@
<w><t>kind-li-ness</t></w>
<w><t>kin-dling</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>kind-ly</t></w>
-<w><t>kind-ness</t></w>
+<w><t>kind-ness</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>kin-dred</t><noun><plural/><convertible-to-possessive/></noun><adjective/></w>
<w><t>kin-dred-less</t></w>
<w><t>kin-dred-ly</t></w>
@@ -85507,7 +85509,7 @@
<w><t>land-race</t></w>
<phrase><t>land re-form</t></phrase>
<w><t>lands</t></w>
-<w><t>land-scape</t></w>
+<w><t>land-scape</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>land-scaped</t></w>
<phrase><t>land-scape gar-den-ing</t></phrase>
<w><t>land-scap-er</t></w>
@@ -85540,7 +85542,7 @@
<w><t>land-ward</t></w>
<w><t>land-wards</t></w>
<w><t>Land-wehr</t></w>
-<w><t>lane</t></w>
+<w><t>lane</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Lane</t></w>
<w><t>La-nett</t></w>
<w><t>Lan-franc</t></w>
@@ -87309,7 +87311,7 @@
<w><t>lev-ee</t></w>
<w><t>lev-eed</t></w>
<w><t>lev-ee-ing</t></w>
-<w><t>lev-el</t></w>
+<w><t>lev-el</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb><adjective><extensible/></adjective></w>
<phrase><t>lev-el cross-ing</t></phrase>
<w><t>lev-eled</t></w>
<w><t>lev-el-er</t></w>
@@ -87326,7 +87328,7 @@
<w><t>lev-el=off</t></w>
<phrase><t>lev-el peg-ging</t></phrase>
<w><t>Le-ven</t></w>
-<w><t>lev-er</t></w>
+<w><t>lev-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Le-ver</t></w>
<w><t>lev-er=ac-tion</t></w>
<w><t>lev-er-age</t></w>
@@ -87704,7 +87706,7 @@
<w><t>lieu</t></w>
<w><t>Lieut</t></w>
<w><t>lieu-ten-an-cy</t></w>
-<w><t>lieu-ten-ant</t></w>
+<w><t>lieu-ten-ant</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>lieu-ten-ant colo-nel</t></phrase>
<phrase><t>lieu-ten-ant com-man-der</t></phrase>
<phrase><t>lieu-ten-ant gen-er-al</t></phrase>
@@ -89275,7 +89277,7 @@
<w><t>long-spur</t></w>
<w><t>long-stand-ing</t></w>
<w><t>long=stand-ing</t></w>
-<w><t>Long-street</t></w>
+<w><t>Long-street</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>long=suf-fer-ance</t></w>
<w><t>long=suf-fer-ing</t><adjective/></w>
<phrase><t>long=term mem-o-ry</t></phrase>
@@ -90148,7 +90150,7 @@
<w><t>lune</t></w>
<w><t>lunes</t></w>
<w><t>Lu-net-ta</t></w>
-<w><t>lu-nette</t></w>
+<w><t>lu-nette</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Lu-né-ville</t></w>
<w><t>lung</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>lun-gan</t></w>
@@ -91806,7 +91808,7 @@
<w><t>man-gey</t></w>
<w><t>man-gi-er</t></w>
<w><t>man-gi-est</t></w>
-<w><t>man-gle</t></w>
+<w><t>man-gle</t><verb><regular-root/></verb></w>
<w><t>man-gler</t></w>
<w><t>man-go</t></w>
<w><t>man-gold</t></w>
@@ -92271,7 +92273,7 @@
<w><t>mar-gent</t></w>
<w><t>Mar-ger-y</t></w>
<w><t>Mar-ghe-ri-ta</t></w>
-<w><t>mar-gin</t></w>
+<w><t>mar-gin</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>mar-gin-al</t></w>
<w><t>mar-gi-na-li-a</t></w>
<w><t>mar-gin-ate</t></w>
@@ -92781,7 +92783,7 @@
<w><t>mas-quer-ad-er</t></w>
<w><t>mas-quer-ad-ing</t></w>
<w><t>Mass</t></w>
-<w><t>mass</t></w>
+<w><t>mass</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Mas-sa</t></w>
<w><t>Mas-sa-chu-set</t></w>
<w><t>Mas-sa-chu-setts</t></w>
@@ -92931,7 +92933,7 @@
<w><t>Ma-tan-zas</t></w>
<w><t>Mat-a-pan</t></w>
<w><t>Mat-a-wan</t></w>
-<w><t>match</t></w>
+<w><t>match</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>match-a-ble</t></w>
<w><t>match-board</t></w>
<w><t>match-board-ing</t></w>
@@ -93288,7 +93290,7 @@
<w><t>May-fair</t></w>
<w><t>May-field</t></w>
<w><t>May-flow-er</t></w>
-<w><t>may-flow-er</t></w>
+<w><t>may-flow-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>May-fly</t></w>
<w><t>may-fly</t></w>
<w><t>may-hap</t></w>
@@ -93422,7 +93424,7 @@
<w><t>mea-con</t></w>
<phrase><t>me-a cul-pa</t></phrase>
<w><t>Mead</t></w>
-<w><t>mead</t></w>
+<w><t>mead</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Meade</t></w>
<w><t>mead-ow</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>mead-ow=brown</t></w>
@@ -94635,7 +94637,7 @@
<w><t>mes-quit</t></w>
<w><t>Mes-quite</t></w>
<w><t>mes-quite</t></w>
-<w><t>mess</t></w>
+<w><t>mess</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<phrase><t>mess a-bout</t></phrase>
<w><t>mes-sage</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>mes-sage stick</t></phrase>
@@ -94776,7 +94778,7 @@
<w><t>me-tam-er-ism</t></w>
<w><t>met-a-mor-phic</t></w>
<w><t>met-a-mor-phism</t></w>
-<w><t>met-a-mor-phose</t></w>
+<w><t>met-a-mor-phose</t><verb><regular-root/></verb></w>
<w><t>Met-a-mor-pho-ses</t></w>
<w><t>Met-amor-phosis</t></w>
<w><t>met-a-mor-pho-sis</t></w>
@@ -96144,7 +96146,7 @@
<w><t>mir-li-ton</t></w>
<w><t>mir-li-tons</t></w>
<w><t>Mi-ró</t></w>
-<w><t>mir-ror</t></w>
+<w><t>mir-ror</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<phrase><t>mir-ror carp</t></phrase>
<phrase><t>mir-ror im-age</t></phrase>
<w><t>mir-ror-like</t></w>
@@ -96748,8 +96750,8 @@
<w><t>mis-sion-er</t></w>
<w><t>mis-sis</t></w>
<w><t>Mis-sis-sau-ga</t></w>
-<w><t>Mis-sis-sip-pi</t></w>
-<w><t>Mis-sis-sip-pi-an</t></w>
+<w><t>Mis-sis-sip-pi</t><noun><singular/><convertible-to-possessive/></noun></w>
+<w><t>Mis-sis-sip-pi-an</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>mis-sive</t></w>
<w><t>Mis-so-lon-ghi</t></w>
<w><t>mis-sort</t></w>
@@ -97268,8 +97270,8 @@
<w><t>moi-ré</t></w>
<w><t>Moi-se-yev</t></w>
<w><t>Mois-san</t></w>
-<w><t>moist</t></w>
-<w><t>mois-ten</t></w>
+<w><t>moist</t><adjective><extensible/></adjective></w>
+<w><t>mois-ten</t><verb><regular-root/></verb></w>
<w><t>moist-en-er</t></w>
<w><t>moist-ful</t></w>
<w><t>moist-less</t></w>
@@ -97406,7 +97408,7 @@
<w><t>mo-men-tous</t></w>
<w><t>mo-men-tous-ly</t></w>
<w><t>mo-men-tous-ness</t></w>
-<w><t>mo-men-tum</t></w>
+<w><t>mo-men-tum</t><noun><singular/></noun></w>
<w><t>Mo-mi</t></w>
<w><t>mom-ism</t></w>
<w><t>Momm-sen</t></w>
@@ -98063,7 +98065,7 @@
<w><t>moose-milk</t></w>
<w><t>moose-wood</t></w>
<w><t>Moo-sic</t></w>
-<w><t>moot</t></w>
+<w><t>moot</t><verb><regular-root/></verb><adjective/></w>
<w><t>moot-er</t></w>
<w><t>moot-ness</t></w>
<w><t>mop</t></w>
@@ -100063,7 +100065,7 @@
<phrase><t>Na-pier-i-an log-a-ri-thm</t></phrase>
<phrase><t>Na-pier’s bones</t></phrase>
<w><t>na-pi-form</t></w>
-<w><t>nap-kin</t></w>
+<w><t>nap-kin</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Na-ples</t></w>
<w><t>nap-less</t></w>
<w><t>nap-less-ness</t></w>
@@ -101170,7 +101172,8 @@
<w><t>Neu-m-ster</t></w>
<w><t>Neu-pest</t></w>
<w><t>neu-ral</t></w>
-<w><t>neu-ral-gia</t></w>
+<w><t>neu-ral-gia</t><noun><singular/><convertible-to-possessive/></noun></w>
+<w><t>neu-ral-gic</t><adjective/></w>
<w><t>neu-ral-gi-form</t></w>
<w><t>neu-ras-the-ni-a</t></w>
<w><t>neu-ras-then-ic</t></w>
@@ -108673,7 +108676,7 @@
<w><t>oc-cult-ly</t></w>
<w><t>oc-cult-ness</t></w>
<w><t>oc-cu-pan-cy</t></w>
-<w><t>oc-cu-pant</t></w>
+<w><t>oc-cu-pant</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>oc-cu-pa-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>oc-cu-pa-tion-al</t></w>
<w><t>oc-cu-pa-tion-al-ly</t></w>
@@ -109903,7 +109906,7 @@
<w><t>oph-thal-mo-scop-ic</t></w>
<w><t>oph-thal-mos-co-pist</t></w>
<w><t>oph-thal-mos-co-py</t></w>
-<w><t>o-pi-ate</t></w>
+<w><t>o-pi-ate</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>o-pi-at-ed</t></w>
<w><t>o-pi-at-ing</t></w>
<w><t>o-pine</t></w>
@@ -110190,7 +110193,7 @@
<phrase><t>or-der a-bout</t></phrase>
<phrase><t>or-der arms</t></phrase>
<phrase><t>or-der in coun-cil</t></phrase>
-<w><t>or-der-ly</t></w>
+<w><t>or-der-ly</t><noun><pluralizable/><convertible-to-possessive/></noun><adverb/></w>
<phrase><t>or-der-ly of-fic-er</t></phrase>
<phrase><t>or-der-ly room</t></phrase>
<phrase><t>Or-der of Mer-it</t></phrase>
@@ -112287,7 +112290,7 @@
<w><t>o-ver-clog-ging</t></w>
<w><t>o-ver-close</t></w>
<w><t>o-ver-clothes</t></w>
-<w><t>o-ver-cloud</t></w>
+<w><t>o-ver-cloud</t><verb><regular-root/></verb></w>
<w><t>o-ver-cloy</t></w>
<w><t>o-ver-clut-ter</t></w>
<w><t>o-ver-coat</t></w>
@@ -114911,7 +114914,7 @@
<w><t>pan-de-mo-ni-ac</t></w>
<w><t>pan-de-mo-ni-a-cal</t></w>
<w><t>pan-de-mo-ni-an</t></w>
-<w><t>pan-de-mo-ni-um</t></w>
+<w><t>pan-de-mo-ni-um</t><noun><singular/><convertible-to-possessive/></noun></w>
<w><t>Pan-de-mos</t></w>
<w><t>pan-der</t><verb><regular-root/></verb></w>
<w><t>pan-der-er</t></w>
@@ -115033,8 +115036,7 @@
<w><t>Pan-op-tes</t></w>
<w><t>pan-op-tic</t></w>
<w><t>pan-op-ti-cal</t></w>
-<w><t>pan-o-ram-a</t></w>
-<w><t>pan-o-ra-ma</t></w>
+<w><t>pan-o-ram-a</t><noun><singular/><convertible-to-possessive/></noun></w>
<w><t>pan-o-ram-ic</t></w>
<w><t>pan-o-ram-i-cal-ly</t></w>
<phrase><t>pan-o-ram-ic sight</t></phrase>
@@ -116562,7 +116564,7 @@
<w><t>pa-vane</t></w>
<w><t>pave</t><verb><regular-root/></verb></w>
<w><t>pa-vé</t></w>
-<w><t>pave-ment</t></w>
+<w><t>pave-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pav-er</t></w>
<w><t>pa-vés</t></w>
<w><t>Pa-ve-se</t></w>
@@ -117071,7 +117073,7 @@
<phrase><t>Pe-lew Is-lands</t></phrase>
<w><t>pelf</t></w>
<w><t>pel-ham</t></w>
-<w><t>Pel-ham</t></w>
+<w><t>Pel-ham</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Pel-ham=Hol-les</t></w>
<w><t>Pe-li-as</t></w>
<w><t>pel-i-can</t></w>
@@ -118102,7 +118104,7 @@
<w><t>per-o-rate</t></w>
<w><t>per-o-rat-ed</t></w>
<w><t>per-o-rat-ing</t></w>
-<w><t>per-o-ra-tion</t></w>
+<w><t>per-o-ra-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>per-o-ra-tion-al</t></w>
<w><t>per-o-ra-tive</t></w>
<w><t>per-or-a-tor-i-cal</t></w>
@@ -119741,11 +119743,11 @@
<w><t>pick-er-el</t></w>
<w><t>pick-er-el-weed</t></w>
<w><t>Pick-er-ing</t></w>
-<w><t>pick-et</t></w>
+<w><t>pick-et</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pick-et-er</t></w>
<phrase><t>pick-et fence</t></phrase>
<phrase><t>pick-et line</t></phrase>
-<w><t>Pick-ett</t></w>
+<w><t>Pick-ett</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Pick-ford</t></w>
<w><t>pick-i-er</t></w>
<w><t>pick-i-est</t></w>
@@ -120011,7 +120013,7 @@
<w><t>pil-gar-lic</t></w>
<w><t>pil-gar-lick-y</t></w>
<w><t>pil-grim</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
-<w><t>pil-grim-age</t></w>
+<w><t>pil-grim-age</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pil-grim-aged</t></w>
<phrase><t>Pil-grim-age of Grace</t></phrase>
<w><t>pil-grim-ag-ing</t></w>
@@ -120842,7 +120844,7 @@
<phrase><t>plate ar-mour</t></phrase>
<w><t>plat-eau</t></w>
<w><t>Plat-eau</t></w>
-<w><t>pla-teau</t></w>
+<w><t>pla-teau</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>plat-ed</t></w>
<w><t>plate-hold-er</t></w>
<w><t>plate-lay-er</t></w>
@@ -122175,7 +122177,7 @@
<w><t>po-mol-o-gy</t></w>
<w><t>Po-mo-na</t></w>
<w><t>Po-mo-rze</t></w>
-<w><t>pomp</t></w>
+<w><t>pomp</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pom-pa-dour</t></w>
<w><t>Pom-pa-dour</t></w>
<w><t>pom-pa-no</t></w>
@@ -125880,12 +125882,12 @@
<w><t>pre-oc-cul-ta-tion</t></w>
<w><t>pre-oc-cu-pan-cy</t></w>
<w><t>pre-oc-cu-pant</t></w>
-<w><t>pre-oc-cu-pa-tion</t></w>
+<w><t>pre-oc-cu-pa-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pre-oc-cu-pied</t></w>
<w><t>pre-oc-cu-pied-ly</t></w>
<w><t>pre-oc-cu-pied-ness</t></w>
<w><t>pre-oc-cu-pi-er</t></w>
-<w><t>pre-oc-cu-py</t></w>
+<w><t>pre-oc-cu-py</t><verb><regular-root/></verb></w>
<w><t>pre-oc-cu-py-ing</t></w>
<w><t>pre-oc-cur</t></w>
<w><t>pre-oc-curred</t></w>
@@ -126573,7 +126575,7 @@
<w><t>pres-ti-dig-i-ta-tion</t></w>
<w><t>pres-ti-dig-i-ta-tor</t></w>
<w><t>pres-ti-dig-i-ta-to-ry</t></w>
-<w><t>pres-tige</t></w>
+<w><t>pres-tige</t><noun><singular/></noun></w>
<w><t>pres-tig-ious</t></w>
<w><t>pre-stim-u-late</t></w>
<w><t>pre-stim-u-lat-ed</t></w>
@@ -127901,7 +127903,7 @@
<w><t>pro=Jap-a-nese</t></w>
<w><t>proj-ect</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>pro-ject-a-ble</t></w>
-<w><t>pro-jec-tile</t></w>
+<w><t>pro-jec-tile</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pro-ject-ing-ly</t></w>
<w><t>pro-jec-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pro-jec-tion-al</t></w>
@@ -128157,7 +128159,7 @@
<w><t>pro=O-ri-en-tal</t></w>
<w><t>pro=or-tho-dox</t></w>
<w><t>pro=or-tho-dox-y</t></w>
-<w><t>prop</t></w>
+<w><t>prop</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>pro-pac-i-fism</t></w>
<w><t>pro-pac-i-fist</t></w>
<w><t>pro-pae-deu-tic</t></w>
@@ -128331,7 +128333,7 @@
<w><t>pro-pri-e-tor-ship</t></w>
<w><t>pro-pri-e-tress</t></w>
<w><t>pro-pri-e-trix</t></w>
-<w><t>pro-pri-e-ty</t></w>
+<w><t>pro-pri-e-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pro-pri-o-cep-tor</t></w>
<w><t>pro-priv-i-lege</t></w>
<w><t>pro-prof-it</t></w>
@@ -128811,7 +128813,7 @@
<w><t>pro-vin-ci-al-i-ty</t></w>
<w><t>pro-vin-cial-ly</t></w>
<phrase><t>prov-ing ground</t></phrase>
-<w><t>pro-vi-sion</t><noun><pluralizable/></noun></w>
+<w><t>pro-vi-sion</t><noun><pluralizable/></noun><verb><regular-root/></verb></w>
<w><t>pro-vi-sion-al</t></w>
<w><t>Pro-vi-sion-al</t></w>
<w><t>pro-vi-sion-al-i-ty</t></w>
@@ -129821,13 +129823,14 @@
<w><t>pul-sa-til-i-ty</t></w>
<w><t>pul-sat-ing</t></w>
<phrase><t>pul-sat-ing star</t></phrase>
-<w><t>pul-sa-tion</t></w>
+<w><t>pul-sa-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pul-sa-tor</t></w>
<w><t>pul-sa-to-ry</t></w>
-<w><t>pulse</t></w>
+<w><t>pulse</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>pulse-beat</t></w>
<phrase><t>pulse height an-a-lys-er</t></phrase>
<w><t>pulse-jet</t></w>
+<w><t>pulse-less</t><adjective/></w>
<phrase><t>pulse mod-u-la-tion</t></phrase>
<w><t>pul-sim-e-ter</t></w>
<w><t>puls-ing</t></w>
@@ -130810,7 +130813,7 @@
<w><t>quar-ter-ing</t></w>
<w><t>quar-ter-light</t></w>
<w><t>quar-ter-ly</t></w>
-<w><t>quar-ter-mas-ter</t></w>
+<w><t>quar-ter-mas-ter</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>quar-ter-mas-ter-like</t></w>
<w><t>quar-ter-mas-ter-ship</t></w>
<w><t>quar-ter=mil-er</t></w>
@@ -131815,7 +131818,7 @@
<w><t>qui-nua</t></w>
<w><t>quinze</t></w>
<w><t>quin-zy</t><noun/></w>
-<w><t>quip</t></w>
+<w><t>quip</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>quip-ping</t></w>
<w><t>quip-pish</t></w>
<w><t>quip-pish-ness</t></w>
@@ -131846,7 +131849,7 @@
<w><t>quit-ta-ble</t></w>
<w><t>quit-tance</t></w>
<w><t>quit-tor</t></w>
-<w><t>quiv-er</t></w>
+<w><t>quiv-er</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>quiv-er-er</t></w>
<w><t>quiv-er-ful</t></w>
<w><t>quiv-er-ing-ly</t></w>
@@ -132269,7 +132272,7 @@
<w><t>RAFVR</t></w>
<w><t>rag</t></w>
<w><t>ra-ga</t></w>
-<w><t>rag-a-muf-fin</t></w>
+<w><t>rag-a-muf-fin</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>rag-bag</t></w>
<w><t>rag-bolt</t></w>
<w><t>rage</t><noun><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
@@ -132309,7 +132312,7 @@
<w><t>Rah-man</t></w>
<w><t>rah=rah</t></w>
<w><t>ra-ia</t></w>
-<w><t>raid</t></w>
+<w><t>raid</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>raid-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>rail</t></w>
<w><t>rail-car</t></w>
@@ -132328,7 +132331,7 @@
<w><t>rail-way-man</t></w>
<w><t>rai-ment</t></w>
<w><t>Rai-mon-di</t></w>
-<w><t>rain</t></w>
+<w><t>rain</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>rain-band</t></w>
<w><t>rain-bird</t></w>
<w><t>rain-bow</t></w>
@@ -132649,7 +132652,7 @@
<w><t>rapt</t></w>
<w><t>rap-tor</t></w>
<w><t>rap-to-ri-al</t></w>
-<w><t>rap-ture</t></w>
+<w><t>rap-ture</t><noun><pluralizable/></noun></w>
<w><t>rap-ture-less</t></w>
<w><t>rap-tur-ous</t></w>
<w><t>rap-tur-ous-ly</t></w>
@@ -132908,7 +132911,7 @@
<w><t>rav-er</t></w>
<w><t>ra-vi-gote</t></w>
<w><t>rav-in</t></w>
-<w><t>ra-vine</t></w>
+<w><t>ra-vine</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ra-vine-y</t></w>
<w><t>rav-ing</t></w>
<w><t>ra-vi-o-li</t></w>
@@ -133930,7 +133933,7 @@
<w><t>re-con-nais-sance</t></w>
<w><t>re-con-nect</t></w>
<w><t>re-con-nec-tion</t></w>
-<w><t>re-con-nois-sance</t></w>
+<w><t>re-con-nois-sance</t><noun><pluralizable/></noun></w>
<w><t>re-con-noi-ter</t></w>
<w><t>re-con-noi-ter-er</t></w>
<w><t>rec-on-noi-tre</t></w>
@@ -135000,7 +135003,7 @@
<w><t>re-fresh-ing</t></w>
<w><t>re-fresh-ing-ly</t></w>
<w><t>re-fresh-ing-ness</t></w>
-<w><t>re-fresh-ment</t></w>
+<w><t>re-fresh-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>re-fried</t></w>
<w><t>re-frig-er-ant</t></w>
<w><t>re-frig-er-ate</t></w>
@@ -135416,7 +135419,7 @@
<w><t>re-im-aged</t></w>
<w><t>re-im-ag-ing</t></w>
<w><t>Rei-ma-rus</t></w>
-<w><t>re-im-burse</t></w>
+<w><t>re-im-burse</t><verb><regular-root/></verb></w>
<w><t>re-im-bursed</t></w>
<w><t>re-im-burse-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>re-im-burs-ing</t></w>
@@ -136147,7 +136150,7 @@
<w><t>re-mo-tion</t></w>
<w><t>ré-mou-lade</t></w>
<w><t>re-mould</t></w>
-<w><t>re-mount</t></w>
+<w><t>re-mount</t><verb><regular-root/></verb></w>
<w><t>re-mov-a-bil-i-ty</t></w>
<w><t>re-mov-a-ble</t></w>
<w><t>re-mov-a-ble-ness</t></w>
@@ -136330,7 +136333,7 @@
<w><t>re-ob-serv-ing</t></w>
<w><t>re-ob-tain</t></w>
<w><t>re-ob-tain-a-ble</t></w>
-<w><t>re-oc-cu-pa-tion</t></w>
+<w><t>re-oc-cu-pa-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>re-oc-cu-pied</t></w>
<w><t>re-oc-cu-py</t></w>
<w><t>re-oc-cu-py-ing</t></w>
@@ -137901,7 +137904,7 @@
<w><t>rev-eil-le</t></w>
<w><t>re-veil-le</t></w>
<w><t>rev-el</t></w>
-<w><t>rev-e-la-tion</t></w>
+<w><t>rev-e-la-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Rev-e-la-tion</t></w>
<w><t>rev-e-la-tion-al</t></w>
<w><t>rev-e-la-tion-ist</t></w>
@@ -138984,7 +138987,7 @@
<w><t>Riv-i-er-a</t></w>
<w><t>ri-vi-ere</t></w>
<w><t>riv-ing</t></w>
-<w><t>riv-u-let</t></w>
+<w><t>riv-u-let</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>riv-u-lus</t></w>
<w><t>rix=dol-lar</t></w>
<w><t>Ri-yadh</t></w>
@@ -139453,7 +139456,7 @@
<w><t>roo</t></w>
<w><t>rood</t></w>
<w><t>Roo-de-poort=Ma-rais-burg</t></w>
-<w><t>roof</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>roof</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>roof-er</t></w>
<phrase><t>roof gar-den</t></phrase>
<w><t>roof-ing</t></w>
@@ -141283,7 +141286,7 @@
<w><t>sanc-tion-less</t></w>
<phrase><t>sanc-tion mark</t></phrase>
<w><t>sanc-ti-tude</t></w>
-<w><t>sanc-ti-ty</t></w>
+<w><t>sanc-ti-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>sanc-tu-ar-ied</t></w>
<w><t>sanc-tu-ar-ies</t></w>
<w><t>sanc-tu-ar-y</t></w>
@@ -142232,7 +142235,7 @@
<w><t>scap-u-lar-ies</t></w>
<w><t>scap-u-lar-y</t></w>
<w><t>scap-u-lo-hum-er-al</t></w>
-<w><t>scar</t></w>
+<w><t>scar</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>scar-ab</t></w>
<w><t>scar-a-bae-an</t></w>
<w><t>scar-a-bae-id</t></w>
@@ -143563,7 +143566,7 @@
<phrase><t>sedge war-bler</t></phrase>
<w><t>sedg-i-er</t></w>
<w><t>sedg-i-est</t></w>
-<w><t>Sedg-wick</t></w>
+<w><t>Sedg-wick</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>sedg-y</t></w>
<w><t>se-di-le</t></w>
<w><t>se-dil-i-a</t></w>
@@ -143655,7 +143658,7 @@
<phrase><t>see o-ver</t></phrase>
<w><t>seep</t></w>
<w><t>seep-age</t></w>
-<w><t>seer</t></w>
+<w><t>seer</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>se-er</t></w>
<w><t>seer-ess</t></w>
<w><t>seer-suck-er</t></w>
@@ -145664,7 +145667,7 @@
<w><t>sen-ti-nel</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>sen-ti-nel-like</t></w>
<w><t>sen-ti-nel-ship</t></w>
-<w><t>sen-try</t></w>
+<w><t>sen-try</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>sen-try box</t></phrase>
<w><t>Se-nu-si</t></w>
<w><t>Se-nu-si-an</t></w>
@@ -146227,7 +146230,7 @@
<w><t>sew-age</t></w>
<phrase><t>sew-age farm</t></phrase>
<w><t>se-wan</t></w>
-<w><t>Sew-ard</t></w>
+<w><t>Sew-ard</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>Sew-ard Pen-in-su-la</t></phrase>
<w><t>Sew-ell</t></w>
<w><t>se-wel-lel</t></w>
@@ -147254,7 +147257,7 @@
<w><t>Sho-sho-ni-an</t></w>
<w><t>Shos-ta-ko-vich</t></w>
<w><t>Sho-sta-ko-vich</t></w>
-<w><t>shot</t></w>
+<w><t>shot</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>shot=blast-ing</t></w>
<w><t>shote</t></w>
<w><t>shot-gun</t></w>
@@ -147341,7 +147344,7 @@
<w><t>shrap-nel</t></w>
<w><t>shread-head</t></w>
<w><t>shread-ing</t></w>
-<w><t>shred</t></w>
+<w><t>shred</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>shred-ded</t></w>
<w><t>shred-der</t></w>
<w><t>shred-ding</t></w>
@@ -147359,7 +147362,7 @@
<w><t>shrew-like</t></w>
<w><t>shrew-mouse</t></w>
<w><t>Shrews-bur-y</t></w>
-<w><t>shriek</t></w>
+<w><t>shriek</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>shriek-er</t></w>
<w><t>shriek-ing-ly</t></w>
<w><t>shriek-y</t></w>
@@ -147693,7 +147696,7 @@
<w><t>Sig</t></w>
<w><t>si-gan-id</t></w>
<w><t>Sig-geir</t></w>
-<w><t>sigh</t></w>
+<w><t>sigh</t><verb><regular-root/></verb></w>
<w><t>sigh-er</t></w>
<w><t>sigh-ful</t></w>
<w><t>sigh-ful-ly</t></w>
@@ -148111,7 +148114,7 @@
<w><t>Si-nan</t></w>
<w><t>sin-an-thro-pus</t></w>
<w><t>sin-a-pine</t></w>
-<w><t>sin-a-pism</t></w>
+<w><t>sin-a-pism</t><noun><pluralizable/></noun></w>
<w><t>Sin-ar-quist</t></w>
<w><t>Si-nar-quis-ta</t></w>
<w><t>Si-nas</t></w>
@@ -148712,7 +148715,7 @@
<w><t>skirl</t></w>
<w><t>skirl-ing</t></w>
<w><t>skir-mish</t><noun><pluralizable/></noun><verb><regular-root/></verb></w>
-<w><t>skir-mish-er</t></w>
+<w><t>skir-mish-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Skir-nir</t></w>
<w><t>Skir-o-pho-ri-a</t></w>
<w><t>skirr</t></w>
@@ -149143,7 +149146,7 @@
<w><t>sloot</t></w>
<w><t>slop</t><noun><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<phrase><t>slop a-round</t></phrase>
-<w><t>slope</t></w>
+<w><t>slope</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>slop-ing</t></w>
<w><t>slop-ing-ly</t></w>
<w><t>slop-ing-ness</t></w>
@@ -149449,7 +149452,7 @@
<w><t>smoodge</t></w>
<w><t>smoodg-er</t></w>
<w><t>smoodg-ing</t></w>
-<w><t>smooth</t></w>
+<w><t>smooth</t><verb><regular-root/></verb><adjective><extensible/></adjective></w>
<w><t>smooth-a-ble</t></w>
<w><t>smooth-bore</t></w>
<phrase><t>smooth breath-ing</t></phrase>
@@ -150953,7 +150956,7 @@
<w><t>Spa</t></w>
<w><t>Spaak</t></w>
<w><t>Spaatz</t></w>
-<w><t>space</t></w>
+<w><t>space</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>space-band</t></w>
<phrase><t>space cap-sule</t></phrase>
<w><t>space-craft</t></w>
@@ -151092,7 +151095,7 @@
<phrase><t>spark-ing plug</t></phrase>
<w><t>spark-ish-ly</t></w>
<w><t>spark-ish-ness</t></w>
-<w><t>spar-kle</t></w>
+<w><t>spar-kle</t><noun><pluralizable/></noun><verb><regular-root/></verb></w>
<w><t>spar-kler</t></w>
<w><t>spark-less</t></w>
<w><t>spark-less-ly</t></w>
@@ -151819,7 +151822,7 @@
<w><t>spir-it-u-al-is-ti-cal-ly</t></w>
<w><t>spir-it-u-al-i-ty</t></w>
<w><t>spir-it-u-al-i-za-tion</t></w>
-<w><t>spir-it-u-al-ize</t></w>
+<w><t>spir-it-u-al-ize</t><verb><regular-root/></verb></w>
<w><t>spir-i-tu-al-iz-er</t></w>
<w><t>spir-it-u-al-ly</t><adverb/></w>
<w><t>spir-it-u-al-ty</t></w>
@@ -1520...
[truncated message content] |
|
From: <vic...@us...> - 2024-05-09 20:58:59
|
Revision: 13332
http://sourceforge.net/p/foray/code/13332
Author: victormote
Date: 2024-05-09 20:58:57 +0000 (Thu, 09 May 2024)
Log Message:
-----------
Show location of words in unconfigured orthographies.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-05-09 13:43:48 UTC (rev 13331)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-05-09 20:58:57 UTC (rev 13332)
@@ -39,6 +39,7 @@
import org.foray.orthography.OrthographyServer4aVariant;
import org.foray.orthography.OrthographyServerConfig;
import org.foray.orthography.SegmentDictionary;
+import org.foray.primitive.StringUtils;
import org.foray.xml.SaxParser;
import org.foray.xml.SaxUtils;
import org.foray.xml.dtd.DtdAttribute;
@@ -373,24 +374,23 @@
* @param location The location of the word in the original document.
*/
private void checkWord(final Orthography4a orthography, final Lexer.Token token, final String location) {
+ CharSequence text = StringUtils.EMPTY_STRING;
if (orthography == null) {
/* Treat as an error. */
- this.output.println("(no config) " + token.getText());
- return;
- }
-
- final CharSequence text = token.getText();
-
- if (orthography.isRecognizedWord(text, 0, text.length(), null)) {
- return;
+ text = "(no config) " + token.getText();
} else {
- final Lexer.Token savedToken = token.getImmutableCopy();
- if (this.lexer.hasNext()) {
- final Lexer.Token nextToken = lexer.peekNext();
- if (nextToken.getTokenType() == Lexer.TokenType.AMBIGUOUS_TRAILING_PUNCTUATION) {
- final String testWord = savedToken.getText().toString() + nextToken.getText().toString();
- if (orthography.isRecognizedWord(testWord, 0, testWord.length(), null)) {
- return;
+ text = token.getText();
+ if (orthography.isRecognizedWord(text, 0, text.length(), null)) {
+ return;
+ } else {
+ final Lexer.Token savedToken = token.getImmutableCopy();
+ if (this.lexer.hasNext()) {
+ final Lexer.Token nextToken = lexer.peekNext();
+ if (nextToken.getTokenType() == Lexer.TokenType.AMBIGUOUS_TRAILING_PUNCTUATION) {
+ final String testWord = savedToken.getText().toString() + nextToken.getText().toString();
+ if (orthography.isRecognizedWord(testWord, 0, testWord.length(), null)) {
+ return;
+ }
}
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-05-09 13:43:53
|
Revision: 13331
http://sourceforge.net/p/foray/code/13331
Author: victormote
Date: 2024-05-09 13:43:48 +0000 (Thu, 09 May 2024)
Log Message:
-----------
Improvements to dictionaries and orthographies.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/orthographies/foray-orthography-config.xml
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml 2024-05-08 23:55:53 UTC (rev 13330)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml 2024-05-09 13:43:48 UTC (rev 13331)
@@ -19,7 +19,10 @@
-->
<w><t>be-hove</t><verb><regular-root/></verb></w>
+<word-placeholder><t>cen-ter</t><different-country country="USA"/></word-placeholder>
+<word-placeholder><t>cen-tered</t><different-country country="USA"/></word-placeholder>
<w><t>cen-tre</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
+<w><t>cen-tred</t><adjective/></w>
<w><t>co=la-bour-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<word-placeholder><t>col-or</t><different-country country="USA"/></word-placeholder>
<w><t>col-our</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml 2024-05-08 23:55:53 UTC (rev 13330)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml 2024-05-09 13:43:48 UTC (rev 13331)
@@ -20,6 +20,9 @@
<w><t>be-hoove</t><verb><regular-root/></verb></w>
<w><t>cen-ter</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
+<w><t>cen-tered</t><adjective></adjective></w>
+<word-placeholder><t>centre</t><different-country country="GBR"/></word-placeholder>
+<word-placeholder><t>centred</t><different-country country="GBR"/></word-placeholder>
<w><t>co=la-bor-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>col-or</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<word-placeholder><t>col-our</t><different-country country="GBR"/></word-placeholder>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml 2024-05-08 23:55:53 UTC (rev 13330)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml 2024-05-09 13:43:48 UTC (rev 13331)
@@ -634,10 +634,10 @@
<w><t>ab-stract-ed-ness</t></w>
<w><t>ab-stract-er</t></w>
<phrase><t>ab-stract ex-pres-sion-ism</t></phrase>
-<w><t>ab-strac-tion</t></w>
+<w><t>ab-strac-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ab-strac-tion-al</t></w>
-<w><t>ab-strac-tion-ism</t></w>
-<w><t>ab-strac-tion-ist</t></w>
+<w><t>ab-strac-tion-ism</t><noun><singular/></noun></w>
+<w><t>ab-strac-tion-ist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ab-strac-tive</t></w>
<w><t>ab-strac-tive-ly</t></w>
<w><t>ab-strac-tive-ness</t></w>
@@ -990,7 +990,7 @@
<w><t>ac-cum-ben-cy</t></w>
<w><t>ac-cum-bent</t></w>
<w><t>ac-cu-mu-la-ble</t></w>
-<w><t>ac-cu-mu-late</t></w>
+<w><t>ac-cu-mu-late</t><verb><regular-root/></verb></w>
<w><t>ac-cu-mu-lat-ed</t></w>
<w><t>ac-cu-mu-lat-ing</t></w>
<w><t>ac-cu-mu-la-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -3253,7 +3253,7 @@
<w><t>aide</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>aide=mé-moire</t></w>
<w><t>aide=m-moire</t></w>
-<w><t>aid-er</t></w>
+<w><t>aid-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>aides=mé-moire</t></w>
<w><t>aid-ful</t></w>
<w><t>Ai-din</t></w>
@@ -11218,7 +11218,7 @@
<w><t>Augs-burg</t></w>
<w><t>au-gur</t></w>
<w><t>au-gu-ral</t></w>
-<w><t>au-gu-ry</t></w>
+<w><t>au-gu-ry</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>au-gust</t></w>
<w><t>Au-gust</t></w>
<w><t>Au-gus-ta</t></w>
@@ -21038,7 +21038,7 @@
<w><t>burst-ing</t></w>
<w><t>bur-stone</t></w>
<w><t>Burt</t></w>
-<w><t>bur-then</t></w>
+<w><t>bur-then</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>bur-then-some</t></w>
<w><t>Bur-ton</t></w>
<w><t>bur-ton</t></w>
@@ -24959,10 +24959,11 @@
<w><t>cen-ten-i-o-na-lis</t></w>
<w><t>cen-ten-ni-al</t></w>
<w><t>cen-ten-ni-al-ly</t></w>
+<word-placeholder><t>center</t><country-specific country="USA"/></word-placeholder>
<w><t>Cen-ter</t></w>
<w><t>cen-ter-a-ble</t></w>
<w><t>cen-ter-board</t></w>
-<w><t>cen-tered</t></w>
+<word-placeholder><t>centered</t><country-specific country="USA"/></word-placeholder>
<w><t>cen-ter=fire</t></w>
<w><t>cen-ter-fold</t></w>
<w><t>cen-ter-ing</t></w>
@@ -25044,10 +25045,10 @@
<phrase><t>Cen-tral Stand-ard Time</t></phrase>
<phrase><t>cen-tral sul-cus</t></phrase>
<phrase><t>cen-tral ten-den-cy</t></phrase>
-<w><t>cen-tre</t></w>
-<w><t>Cen-tre</t></w>
+<word-placeholder><t>centre</t><country-specific country="GBR"/></word-placeholder>
<phrase><t>cen-tre bit</t></phrase>
<w><t>cen-tre-board</t></w>
+<word-placeholder><t>centred</t><country-specific country="GBR"/></word-placeholder>
<phrase><t>cen-tred dot</t></phrase>
<w><t>cen-tre=fire</t></w>
<w><t>cen-tre-fold</t></w>
@@ -28821,7 +28822,7 @@
<w><t>click-e-ty=click</t></w>
<w><t>click-less</t></w>
<w><t>Cli-de</t></w>
-<w><t>cli-ent</t></w>
+<w><t>cli-ent</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cli-ent-age</t></w>
<w><t>cli-en-tage</t></w>
<w><t>cli-en-tal</t></w>
@@ -29659,7 +29660,7 @@
<w><t>coe-nu-ri</t></w>
<w><t>coe-nu-rus</t></w>
<w><t>co-en-zyme</t></w>
-<w><t>co-e-qual</t><adjective><extensible value="false"/></adjective></w>
+<w><t>co-e-qual</t><noun><pluralizable/></noun><adjective><extensible value="false"/></adjective></w>
<w><t>co-e-qual-i-ty</t></w>
<w><t>co-e-qual-ly</t></w>
<w><t>co-erce</t></w>
@@ -32357,7 +32358,7 @@
<w><t>con-sti-pat-ed</t></w>
<w><t>con-sti-pat-ing</t></w>
<w><t>con-sti-pa-tion</t></w>
-<w><t>con-stit-u-en-cy</t></w>
+<w><t>con-stit-u-en-cy</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>con-stit-u-ent</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>con-stit-u-ent-ly</t></w>
<w><t>con-sti-tute</t><verb><regular-root/></verb></w>
@@ -33169,7 +33170,7 @@
<w><t>co-or-di-nal</t></w>
<w><t>co-ör-di-nal</t></w>
<w><t>co=or-di-nal</t></w>
-<w><t>co-or-di-nate</t></w>
+<w><t>co-or-di-nate</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>co-ör-di-nate</t></w>
<w><t>co=or-di-nate</t></w>
<phrase><t>co-or-di-nate bond</t></phrase>
@@ -33214,7 +33215,7 @@
<w><t>co-par-ce-nar-y</t></w>
<w><t>co-par-ce-ner</t></w>
<w><t>co-par-ce-ny</t></w>
-<w><t>co-part-ner</t></w>
+<w><t>co-part-ner</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>co-part-ner-ship</t></w>
<w><t>co-pa-set-ic</t></w>
<w><t>cope</t></w>
@@ -33768,7 +33769,7 @@
<w><t>cor-re-la-tion</t></w>
<w><t>cor-re-la-tion-al</t></w>
<phrase><t>cor-re-la-tion co-ef-fi-cient</t></phrase>
-<w><t>cor-rel-a-tive</t></w>
+<w><t>cor-rel-a-tive</t><noun><pluralizable/></noun><adjective/></w>
<w><t>cor-rel-a-tive-ly</t></w>
<w><t>cor-rel-a-tive-ness</t></w>
<w><t>cor-rel-a-tiv-i-ty</t></w>
@@ -38176,7 +38177,7 @@
<w><t>de-bar-ment</t></w>
<w><t>de-barred</t></w>
<w><t>de-bar-ring</t></w>
-<w><t>de-base</t></w>
+<w><t>de-base</t><verb><regular-root/></verb></w>
<w><t>de-based</t></w>
<w><t>de-bas-ed-ness</t></w>
<w><t>de-base-ment</t></w>
@@ -40325,10 +40326,10 @@
<w><t>de-rail-leur</t></w>
<w><t>de-rail-ment</t></w>
<w><t>De-rain</t></w>
-<w><t>de-range</t></w>
+<w><t>de-range</t><verb><regular-root/></verb></w>
<w><t>de-range-a-ble</t></w>
<w><t>de-ranged</t></w>
-<w><t>de-range-ment</t></w>
+<w><t>de-range-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>de-rang-er</t></w>
<w><t>de-rang-ing</t></w>
<w><t>de-ra-tion</t></w>
@@ -40620,7 +40621,7 @@
<w><t>de-sir-ous</t></w>
<w><t>de-sir-ous-ly</t></w>
<w><t>de-sir-ous-ness</t></w>
-<w><t>de-sist</t></w>
+<w><t>de-sist</t><verb><regular-root/></verb></w>
<w><t>de-sist-ance</t></w>
<w><t>de-sist-ence</t></w>
<w><t>desk</t></w>
@@ -42339,7 +42340,7 @@
<phrase><t>dip-lo-mat-ic im-mun-i-ty</t></phrase>
<w><t>dip-lo-mat-ics</t></w>
<phrase><t>Dip-lo-mat-ic Serv-ice</t></phrase>
-<w><t>di-plo-ma-tist</t></w>
+<w><t>di-plo-ma-tist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dip-lont</t></w>
<w><t>dip-lo-pho-ni-a</t></w>
<w><t>dip-lo-phon-ic</t></w>
@@ -42613,7 +42614,7 @@
<w><t>dis-burs-a-ble</t></w>
<w><t>dis-burse</t></w>
<w><t>dis-bursed</t></w>
-<w><t>dis-burse-ment</t></w>
+<w><t>dis-burse-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-burs-er</t></w>
<w><t>dis-burs-ing</t></w>
<w><t>dis-bur-then</t></w>
@@ -43364,7 +43365,7 @@
<w><t>dis-put-a-ble</t></w>
<w><t>dis-put-a-ble-ness</t></w>
<w><t>dis-put-a-bly</t></w>
-<w><t>dis-pu-tant</t></w>
+<w><t>dis-pu-tant</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-pu-ta-tion</t></w>
<w><t>dis-pu-ta-tious</t></w>
<w><t>dis-pu-ta-tious-ly</t></w>
@@ -55135,7 +55136,7 @@
<w><t>feu-dal-ized</t></w>
<w><t>feu-dal-iz-ing</t></w>
<w><t>feu-dal-ly</t></w>
-<w><t>feu-da-to-ry</t></w>
+<w><t>feu-da-to-ry</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective/></w>
<w><t>feud-ist</t></w>
<w><t>Feu-er-bach</t></w>
<w><t>Feuil-lant</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -56694,7 +56695,7 @@
<w><t>Flo-is</t></w>
<w><t>F-lon</t></w>
<w><t>flong</t></w>
-<w><t>flood</t><noun><pluralizable/></noun></w>
+<w><t>flood</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Flood</t></w>
<w><t>flood-a-ble</t></w>
<phrase><t>flood con-trol</t></phrase>
@@ -59323,10 +59324,12 @@
<w><t>Ful-bert</t></w>
<w><t>Ful-bright</t></w>
<w><t>ful-crum</t></w>
-<w><t>ful-filled</t><adjective/></w>
+<word-placeholder><t>fulfil</t><country-specific country="GBR"/></word-placeholder>
+<word-placeholder><t>fulfill</t><country-specific country="USA"/></word-placeholder>
<w><t>ful-fill-er</t></w>
<w><t>ful-fill-ing</t><adjective/></w>
-<w><t>ful-fill-ment</t><noun/></w>
+<word-placeholder><t>fulfillment</t><country-specific country="USA"/></word-placeholder>
+<word-placeholder><t>fulfilment</t><country-specific country="GBR"/></word-placeholder>
<w><t>Ful-gen-cio</t></w>
<w><t>ful-gent</t></w>
<w><t>ful-gent-ly</t></w>
@@ -59631,7 +59634,7 @@
<w><t>Fu-san</t></w>
<w><t>fu-sa-role</t></w>
<w><t>fus-cous</t></w>
-<w><t>fuse</t></w>
+<w><t>fuse</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>fu-see</t></w>
<w><t>fu-sel</t></w>
<w><t>fu-se-lage</t></w>
@@ -60758,7 +60761,7 @@
<w><t>gaug-ing</t></w>
<w><t>Gau-guin</t></w>
<w><t>Gau-ha-ti</t></w>
-<w><t>Gaul</t></w>
+<w><t>Gaul</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Gau-lei-ter</t></w>
<w><t>Gaul-ish</t></w>
<w><t>Gaulle</t></w>
@@ -69893,7 +69896,7 @@
<w><t>hind-quar-ter</t></w>
<w><t>hin-drance</t></w>
<w><t>hind-sight</t></w>
-<w><t>Hin-du</t></w>
+<w><t>Hin-du</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Hin-du-ism</t></w>
<w><t>Hin-du-ize</t></w>
<w><t>Hin-du-ized</t></w>
@@ -76736,7 +76739,7 @@
<w><t>in-fre-quence</t></w>
<w><t>in-fre-quen-cy</t></w>
<w><t>in-fre-quent</t></w>
-<w><t>in-fre-quent-ly</t></w>
+<w><t>in-fre-quent-ly</t><adverb/></w>
<w><t>in-fringe</t></w>
<w><t>in-fringed</t></w>
<w><t>in-fringe-ment</t><noun><convertible-to-possessive/></noun></w>
@@ -80857,7 +80860,7 @@
<w><t>Jah-wis-tic</t></w>
<w><t>jai</t></w>
<phrase><t>jai a-lai</t></phrase>
-<w><t>jail</t></w>
+<w><t>jail</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>jail-bait</t></w>
<w><t>jail-bird</t></w>
<w><t>jail-break</t></w>
@@ -92069,7 +92072,7 @@
<w><t>ma-nur-ing</t></w>
<w><t>ma-nus</t></w>
<w><t>Ma-nus</t></w>
-<w><t>man-u-script</t></w>
+<w><t>man-u-script</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>man-u-script-al</t></w>
<w><t>Ma-nu-ti-us</t></w>
<w><t>man-ward</t></w>
@@ -110287,7 +110290,7 @@
<w><t>or-gan-i-za-tion-al</t></w>
<w><t>or-gan-i-za-tion-al-ly</t></w>
<phrase><t>or-gan-i-za-tion man</t></phrase>
-<w><t>or-gan-ize</t></w>
+<w><t>or-gan-ize</t><verb><regular-root/></verb></w>
<w><t>or-gan-ized</t></w>
<w><t>or-gan-iz-er</t></w>
<w><t>or-gan-iz-ing</t></w>
@@ -113786,7 +113789,7 @@
<w><t>o-ver-tart</t></w>
<w><t>o-ver-task</t></w>
<w><t>o-ver-taught</t></w>
-<w><t>o-ver-tax</t></w>
+<w><t>o-ver-tax</t><verb><regular-root/></verb></w>
<w><t>o-ver-tax-a-tion</t></w>
<w><t>o-ver-teach</t></w>
<w><t>o-ver-teach-ing</t></w>
@@ -114544,7 +114547,7 @@
<w><t>pa-la-tial-ly</t></w>
<w><t>pa-la-tial-ness</t></w>
<w><t>pa-lat-i-nal</t></w>
-<w><t>pa-lat-i-nate</t></w>
+<w><t>pa-lat-i-nate</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Pa-lat-i-nate</t></w>
<w><t>Pal-a-tine</t></w>
<w><t>pal-a-tine</t></w>
@@ -116611,7 +116614,7 @@
<w><t>pay-check</t></w>
<w><t>pay-day</t></w>
<w><t>pay-ee</t></w>
-<w><t>pay-er</t></w>
+<w><t>pay-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Pay-ette</t></w>
<w><t>pay-ing</t></w>
<phrase><t>pay-ing guest</t></phrase>
@@ -121078,7 +121081,7 @@
<w><t>plen-i-po-ten-ti-ar-ies</t></w>
<w><t>plen-i-po-ten-ti-ar-y</t></w>
<w><t>plen-ish</t></w>
-<w><t>plen-i-tude</t></w>
+<w><t>plen-i-tude</t><noun><singular/></noun></w>
<w><t>plen-te-ous</t></w>
<w><t>plen-te-ous-ly</t></w>
<w><t>plen-te-ous-ness</t></w>
@@ -121085,6 +121088,7 @@
<w><t>plen-ti-ful</t></w>
<w><t>plen-ti-ful-ly</t></w>
<w><t>plen-ti-ful-ness</t></w>
+<w><t>plent-i-tude</t><noun><singular/></noun></w>
<w><t>plen-ty</t><noun><singular/></noun><adjective><extensible/></adjective></w>
<w><t>Plen-ty</t></w>
<w><t>ple-num</t></w>
@@ -121660,7 +121664,7 @@
<w><t>po-lac-ca=rigged</t></w>
<w><t>Po-lack</t></w>
<w><t>po-la-cre</t></w>
-<w><t>Po-land</t></w>
+<w><t>Po-land</t><noun><convertible-to-possessive/></noun></w>
<w><t>Po-lan-ski</t></w>
<w><t>po-lar</t></w>
<phrase><t>po-lar ax-is</t></phrase>
@@ -124696,7 +124700,7 @@
<w><t>pre-dis-plac-ing</t></w>
<w><t>pre-dis-play</t></w>
<w><t>pre-dis-pos-al</t></w>
-<w><t>pre-dis-pose</t></w>
+<w><t>pre-dis-pose</t><verb><regular-root/></verb></w>
<w><t>pre-dis-pos-ed-ly</t></w>
<w><t>pre-dis-pos-ed-ness</t></w>
<w><t>pre-dis-po-si-tion</t></w>
@@ -128742,7 +128746,7 @@
<w><t>pro=Tur-kish</t></w>
<w><t>pro-tyl</t></w>
<w><t>pro-tyle</t></w>
-<w><t>proud</t></w>
+<w><t>proud</t><adjective><extensible/></adjective></w>
<w><t>Prou-dhon</t></w>
<w><t>proud-ly</t></w>
<w><t>proud-ness</t></w>
@@ -147503,11 +147507,12 @@
<w><t>Si-bi-u</t></w>
<w><t>sib-ling</t></w>
<w><t>sib-ship</t></w>
-<w><t>sib-yl</t></w>
+<w><t>sib-yl</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Sib-yl</t></w>
<w><t>si-byl-ic</t></w>
<w><t>Sib-ylle</t></w>
<w><t>si-byl-lic</t></w>
+<w><t>sib-yl-line</t><adjective/></w>
<phrase><t>Sib-yl-line Books</t></phrase>
<w><t>sic</t></w>
<w><t>Sic</t></w>
@@ -150122,6 +150127,7 @@
<w><t>soix-ante=neuf</t></w>
<w><t>so-ja</t></w>
<w><t>so-journ</t><verb><regular-root/></verb></w>
+<w><t>so-journ-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>soke</t></w>
<w><t>soke-man</t></w>
<w><t>soke-man-ry</t></w>
@@ -154490,9 +154496,10 @@
<w><t>string-board</t></w>
<w><t>string-course</t></w>
<phrase><t>stringed in-stru-ment</t></phrase>
+<w><t>strin-gen-cy</t><noun><singular/></noun></w>
<w><t>strin-gen-do</t></w>
-<w><t>strin-gent</t></w>
-<w><t>strin-gent-ly</t></w>
+<w><t>strin-gent</t><adjective/></w>
+<w><t>strin-gent-ly</t><adverb/></w>
<w><t>string-er</t></w>
<w><t>string-halt</t></w>
<w><t>string-halt-ed</t></w>
@@ -160254,7 +160261,7 @@
<w><t>Tar-pe-ia</t></w>
<phrase><t>Tar-pe-ian Rock</t></phrase>
<w><t>tar-pon</t></w>
-<w><t>Tar-quin</t></w>
+<w><t>Tar-quin</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>tar-ra-did-dle</t></w>
<w><t>tar-ra-gon</t></w>
<w><t>Tar-ra-go-na</t></w>
@@ -181299,7 +181306,7 @@
<w><t>vi-brant-ly</t></w>
<w><t>vi-bra-phone</t></w>
<w><t>vi-bra-phon-ist</t></w>
-<w><t>vi-brate</t></w>
+<w><t>vi-brate</t><verb><regular-root/></verb></w>
<w><t>vi-brat-ed</t></w>
<w><t>vi-brat-ing</t></w>
<w><t>vi-brat-ing-ly</t></w>
@@ -185592,7 +185599,7 @@
<w><t>Wipo</t></w>
<w><t>WIPO</t></w>
<w><t>wir-a-ble</t></w>
-<w><t>wire</t></w>
+<w><t>wire</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>wired</t></w>
<w><t>wire-danc-er</t></w>
<w><t>wire-danc-ing</t></w>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml 2024-05-08 23:55:53 UTC (rev 13330)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml 2024-05-09 13:43:48 UTC (rev 13331)
@@ -21,6 +21,7 @@
<w><t>ad</t></w>
<w><t>al.</t><abbrev referenced-word="alia, alii, aliae, English 'others'."/></w>
<w><t>a-li-as</t></w>
+<w><t>a-li-os</t></w>
<w><t>al-ter-i-us</t></w>
<w><t>am-ic-i-tio-res</t></w>
<w><t>am-or</t></w>
@@ -96,6 +97,7 @@
<w><t>dra-ma-tis</t></w>
<w><t>dul-ci-a</t></w>
<w><t>du-ran-te</t></w>
+<w><t>e</t></w>
<w><t>e.g.</t><abbrev referenced-word="id est"/><comment>Latin "that is."</comment></w>
<w><t>e. g.</t><abbrev referenced-word="id est"/><comment>Latin "that is."</comment></w>
<w><t>e-go</t></w>
@@ -159,6 +161,7 @@
<w><t>in-fi-del-i-um</t></w>
<w><t>in-fin-i-tum</t></w>
<w><t>in-san-i-a</t></w>
+<w><t>in-ter</t></w>
<w><t>ip-se</t></w>
<w><t>ip-so</t></w>
<w><t>ju-dae-us</t></w>
@@ -186,6 +189,7 @@
<w><t>Mar-cel-lo</t></w>
<w><t>max-im</t><noun><singular/></noun></w>
<w><t>max-ims</t><noun><plural/></noun></w>
+<w><t>med-i-ca-trix</t></w>
<w><t>me-ro</t></w>
<w><t>me-um</t></w>
<w><t>mi-nu-tiæ</t></w>
@@ -247,6 +251,7 @@
<w><t>pe-ti-tio</t></w>
<w><t>ple-be-ian</t><noun><singular/></noun></w>
<w><t>ple-be-ians</t><noun><plural/></noun></w>
+<w><t>plu-ri-bus</t></w>
<w><t>pœnis</t></w>
<w><t>pop-u-li</t></w>
<w><t>pos-se</t></w>
@@ -356,6 +361,7 @@
<w><t>ul-ti-ma-tum</t></w>
<w><t>ul-tra</t></w>
<w><t>un-i-us</t></w>
+<w><t>un-um</t></w>
<w><t>ut</t></w>
<w><t>u-ti</t></w>
<w><t>vag-um</t></w>
@@ -375,6 +381,7 @@
<w><t>vil-le-nag-i-um</t></w>
<w><t>vin-ces</t></w>
<w><t>vir</t></w>
+<w><t>vis</t></w>
<w><t>vi-va</t></w>
<w><t>vive</t></w>
<w><t>viz</t><abbrev referenced-word="videlicet, a contraction of videre licet, meaning 'it is permitted to see'."/></w>
Modified: trunk/foray/foray-orthography/src/main/data/orthographies/foray-orthography-config.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/orthographies/foray-orthography-config.xml 2024-05-08 23:55:53 UTC (rev 13330)
+++ trunk/foray/foray-orthography/src/main/data/orthographies/foray-orthography-config.xml 2024-05-09 13:43:48 UTC (rev 13331)
@@ -26,6 +26,8 @@
<match desc="Two dimensions">^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]*)?×[0-9]{1,3}(,[0-9]{3})*(\.[0-9]*)?$</match>
<match desc="Standalone symbols">^[§\[\]\/=…]$</match>
<match desc="English Fraction">^[0-9]*[¼½¾]?(-[0-9]+ths)?$</match>
+ <match desc="Degrees">^[0-9]*(\.[0-9]*)?°$</match>
+ <match desc="Minutes">^[0-9]*(\.[0-9]*)?′$</match>
</match-rule-list>
<match-rule-list id="lat-Latn-match-rules">
@@ -89,7 +91,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-s/">
- <match>^([a-zæœëöA-ZÆŒ\- ]+)s$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\- ]+)s$</match>
<replace>$1</replace>
<derivative-rule>
<noun><pluralizable/></noun>
@@ -109,7 +111,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with certain double consonants, then /-ed/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)([bcdfgklmnprstvz])(\2)ed$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)([bcdfgklmnprstvz])(\2)ed$</match>
<replace>$1$2</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -118,7 +120,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-ed/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)ed$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)ed$</match>
<replace>$1</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -127,7 +129,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-d/, stem ends with silent /-e/">
- <match>^([a-zæœëöA-ZÆŒ\-]+e)d$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+e)d$</match>
<replace>$1</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -136,7 +138,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with certain double consonants, then /-ing/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)([bcdfgklmnprstvz])(\2)ing$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)([bcdfgklmnprstvz])(\2)ing$</match>
<replace>$1$2</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -144,7 +146,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-ing/, stem ends with silent /e/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)ing$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)ing$</match>
<replace>$1e</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -152,7 +154,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-ing/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)ing$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)ing$</match>
<replace>$1</replace>
<derivative-rule>
<verb><regular-root/></verb>
@@ -160,7 +162,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-er/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)er$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)er$</match>
<replace>$1</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -168,7 +170,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-est/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)est$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)est$</match>
<replace>$1</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -176,7 +178,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-er/, root ends in /-e/, e.g. noble">
- <match>^([a-zæœëöA-ZÆŒ\-]+e)r$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+e)r$</match>
<replace>$1</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -184,7 +186,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-est/, root ends in /-e/, e.g. noble">
- <match>^([a-zæœëöA-ZÆŒ\-]+e)st$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+e)st$</match>
<replace>$1</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -192,7 +194,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with certain double consonants, then /-er/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)([d])(\2)er$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)([d])(\2)er$</match>
<replace>$1$2</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -200,7 +202,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with certain double consonants, then /-est/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)([d])(\2)est$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)([d])(\2)est$</match>
<replace>$1$2</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -208,7 +210,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-ier/, root ends with /-y/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)ier$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)ier$</match>
<replace>$1y</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -216,7 +218,7 @@
</derivative-rule>
</derivative-pattern>
<derivative-pattern desc="ends with /-iest/, root ends with /-y/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)iest$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)iest$</match>
<replace>$1y</replace>
<derivative-rule>
<adjective><extensible/></adjective>
@@ -227,7 +229,7 @@
<derivative-pattern-list id="fre-Latn-derivative-patterns">
<derivative-pattern desc="ends with /-s/">
- <match>^([a-zæœëöA-ZÆŒ\-]+)s$</match>
+ <match>^([a-zæœëéöA-ZÆŒ\-]+)s$</match>
<replace>$1</replace>
<derivative-rule>
<noun><pluralizable/></noun>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-05-08 23:55:55
|
Revision: 13330
http://sourceforge.net/p/foray/code/13330
Author: victormote
Date: 2024-05-08 23:55:53 +0000 (Wed, 08 May 2024)
Log Message:
-----------
Upgrade JUnit to 5.10.2 to fix class loading conflict when running from Eclipse.
Modified Paths:
--------------
trunk/foray/buildSrc/src/main/groovy/foray.common-conventions.gradle
Modified: trunk/foray/buildSrc/src/main/groovy/foray.common-conventions.gradle
===================================================================
--- trunk/foray/buildSrc/src/main/groovy/foray.common-conventions.gradle 2024-05-08 17:54:29 UTC (rev 13329)
+++ trunk/foray/buildSrc/src/main/groovy/foray.common-conventions.gradle 2024-05-08 23:55:53 UTC (rev 13330)
@@ -57,7 +57,7 @@
jeuclid: '3.1.14', // Latest is 3.1.14 as of 2022-11-26. See Note 4.
icu4j: '72.1', // Latest is 72.1 as of 2022-11-26.
- junit: '5.9.1', // Latest is 5.9.1 as of 2022-11-26.
+ junit: '5.10.2', // Latest is 5.10.2 as of 2024-05-08.
mockito: '4.9.0', // Latest is 4.9.0 as of 2022-11-26. See Note 5.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-05-08 17:54:32
|
Revision: 13329
http://sourceforge.net/p/foray/code/13329
Author: victormote
Date: 2024-05-08 17:54:29 +0000 (Wed, 08 May 2024)
Log Message:
-----------
Dictionary improvements.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml
trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml 2024-05-03 21:52:36 UTC (rev 13328)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-GBR.dict.xml 2024-05-08 17:54:29 UTC (rev 13329)
@@ -23,9 +23,16 @@
<w><t>co=la-bour-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<word-placeholder><t>col-or</t><different-country country="USA"/></word-placeholder>
<w><t>col-our</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<word-placeholder><t>de-mean-or</t><different-country country="GBR"/></word-placeholder>
+<w><t>de-mean-our</t><noun/></w>
+<word-placeholder><t>dishonor</t><country-specific country="USA"/></word-placeholder>
+<word-placeholder><t>dishonorable</t><different-country country="USA"/></word-placeholder>
+<w><t>dis-hon-our</t><verb><regular-root/></verb></w>
+<w><t>dis-hon-our-a-ble</t><adjective/></w>
<w><t>dis-til</t><verb/></w>
<w><t>dis-tils</t><verb><lemma>distil</lemma></verb></w>
-<w><t>draught</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<word-placeholder><t>draft</t><different-country country="USA"/></word-placeholder>
+<w><t>draught</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>draught-board</t></w>
<w><t>draught-er</t></w>
<w><t>draught-i-er</t></w>
@@ -37,6 +44,10 @@
<w><t>draught-y</t></w>
<word-placeholder><t>en-deav-or</t><different-country country="USA"/></word-placeholder>
<w><t>en-deav-our</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
+<word-placeholder><t>favor</t><different-country country="USA"/></word-placeholder>
+<word-placeholder><t>favorite</t><different-country country="USA"/></word-placeholder>
+<w><t>fa-vour</t><verb><regular-root/></verb></w>
+<w><t>fa-vour-ite</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective></adjective></w>
<w><t>ful-fil</t><verb/></w>
<w><t>ful-fil-ment</t><noun/></w>
<w><t>ful-fils</t><verb><vf><singular/></vf></verb></w>
@@ -67,6 +78,8 @@
<w><t>neigh-bour</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>neigh-bour-hood</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>rig-our</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<word-placeholder><t>ru-mor</t><different-country country="USA"/></word-placeholder>
+<w><t>ru-mour</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<word-placeholder><t>superior</t><different-country country="USA"/></word-placeholder>
<w><t>su-pe-ri-our</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective/></w>
</axsl-dictionary>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml 2024-05-03 21:52:36 UTC (rev 13328)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-USA.dict.xml 2024-05-08 17:54:29 UTC (rev 13329)
@@ -23,6 +23,12 @@
<w><t>co=la-bor-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>col-or</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<word-placeholder><t>col-our</t><different-country country="GBR"/></word-placeholder>
+<w><t>de-mean-or</t><noun/></w>
+<word-placeholder><t>demeanour</t><different-country country="GBR"/></word-placeholder>
+<w><t>dis-hon-or</t><verb><regular-root/></verb></w>
+<w><t>dis-hon-or-a-ble</t><adjective/></w>
+<word-placeholder><t>dishonour</t><different-country country="GBR"/></word-placeholder>
+<word-placeholder><t>dishonourable</t><different-country country="GBR"/></word-placeholder>
<w><t>dis-till</t><verb/></w>
<w><t>draft</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>draft-a-ble</t></w>
@@ -36,8 +42,13 @@
<w><t>drafts-man</t></w>
<w><t>drafts-man-ship</t></w>
<w><t>draft-y</t></w>
+<word-placeholder><t>draught</t><different-country country="GBR"/></word-placeholder>
<w><t>en-deav-or</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<word-placeholder><t>en-deav-our</t><different-country country="GBR"/></word-placeholder>
+<w><t>fa-vor</t><verb><regular-root/></verb></w>
+<w><t>fa-vor-ite</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective></adjective></w>
+<word-placeholder><t>favour</t><different-country country="GBR"/></word-placeholder>
+<word-placeholder><t>favourite</t><different-country country="GBR"/></word-placeholder>
<w><t>ful-fill</t><verb><regular-root/></verb></w>
<w><t>ful-fill-ment</t><noun/></w>
<w><t>hon-or</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
@@ -67,6 +78,8 @@
<word-placeholder><t>neighbour</t><different-country country="GBR"/></word-placeholder>
<word-placeholder><t>neighbourhood</t><different-country country="GBR"/></word-placeholder>
<w><t>rig-or</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>ru-mor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<word-placeholder><t>ru-mour</t><different-country country="GBR"/></word-placeholder>
<w><t>su-pe-ri-or</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective/></w>
<word-placeholder><t>superiour</t><different-country country="GBR"/></word-placeholder>
</axsl-dictionary>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml 2024-05-03 21:52:36 UTC (rev 13328)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/eng-Latn-ZZZ.dict.xml 2024-05-08 17:54:29 UTC (rev 13329)
@@ -58,6 +58,7 @@
<w><t>&</t></w>
<w><t>&c.</t><abbrev referenced-word="etc., et cetera"/></w>
<w><t>a</t></w>
+<w><t>A.D.</t><abbrev referenced-word="anno Domini"/><comment>Latin "year of our Lord"</comment></w>
<w><t>a.d.</t><abbrev referenced-word="anno Domini"/><comment>Latin "year of our Lord"</comment></w>
<w><t>a. d.</t><abbrev referenced-word="anno Domini"/><comment>Latin "year of our Lord"</comment></w>
<w><t>a.m.</t><abbrev referenced-word="ante meridian"/><comment>Latin "before noon"</comment></w>
@@ -904,7 +905,7 @@
<w><t>ac-com-mo-da-tor</t></w>
<w><t>ac-com-pa-nied</t></w>
<w><t>ac-com-pa-ni-er</t></w>
-<w><t>ac-com-pa-ni-ment</t></w>
+<w><t>ac-com-pa-ni-ment</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ac-com-pa-nist</t></w>
<w><t>ac-com-pa-ny</t><verb><regular-root/></verb></w>
<w><t>ac-com-pa-ny-ing</t></w>
@@ -7675,7 +7676,7 @@
<w><t>an-ti-py-ret-ic</t></w>
<w><t>an-ti-py-rine</t></w>
<w><t>an-ti-py-rot-ic</t></w>
-<w><t>an-ti-quar-i-an</t></w>
+<w><t>an-ti-quar-i-an</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>an-ti-quar-i-an-ism</t></w>
<w><t>an-ti-quar-ies</t></w>
<w><t>an-ti-quar-y</t></w>
@@ -8446,9 +8447,9 @@
<w><t>ap-peas-ing-ly</t></w>
<w><t>Ap-pel</t></w>
<w><t>ap-pel</t></w>
-<w><t>ap-pel-lant</t></w>
+<w><t>ap-pel-lant</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ap-pel-late</t></w>
-<w><t>ap-pel-la-tion</t></w>
+<w><t>ap-pel-la-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ap-pel-la-tive</t></w>
<w><t>ap-pel-la-tive-ly</t></w>
<w><t>ap-pel-la-tive-ness</t></w>
@@ -12917,7 +12918,7 @@
<phrase><t>bal-lot box</t></phrase>
<w><t>bal-lot-ed</t></w>
<w><t>bal-lot-er</t></w>
-<w><t>bal-lot-ing</t></w>
+<w><t>bal-lot-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>bal-lot pa-per</t></phrase>
<w><t>bal-lotte-ment</t></w>
<w><t>bal-lot-tine</t></w>
@@ -14943,7 +14944,7 @@
<w><t>bel-lied</t></w>
<w><t>bel-lig-er-ence</t></w>
<w><t>bel-lig-er-en-cy</t></w>
-<w><t>bel-lig-er-ent</t></w>
+<w><t>bel-lig-er-ent</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>bel-lig-er-ent-ly</t></w>
<w><t>Bel-ling-ham</t></w>
<phrase><t>Bel-lings-hau-sen Sea</t></phrase>
@@ -21032,7 +21033,7 @@
<w><t>bur-ser-a-ceous</t></w>
<w><t>bur-si-form</t></w>
<w><t>bur-si-tis</t></w>
-<w><t>burst</t></w>
+<w><t>burst</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>burst-er</t></w>
<w><t>burst-ing</t></w>
<w><t>bur-stone</t></w>
@@ -23792,7 +23793,7 @@
<w><t>Carte-sian-ism</t></w>
<w><t>cart-ful</t></w>
<w><t>Car-thage</t><noun><convertible-to-possessive/></noun></w>
-<w><t>Car-tha-gin-i-an</t></w>
+<w><t>Car-tha-gin-i-an</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>Car-thal</t></w>
<w><t>cart-horse</t></w>
<w><t>Car-thu-sian</t></w>
@@ -24937,7 +24938,7 @@
<w><t>cen-sure-less</t></w>
<w><t>cen-sur-er</t></w>
<w><t>cen-sur-ing</t></w>
-<w><t>cen-sus</t></w>
+<w><t>cen-sus</t><noun/></w>
<w><t>cen-sus-es</t></w>
<w><t>cent</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>cen-tal</t></w>
@@ -27778,7 +27779,7 @@
<w><t>cic-a-triz-ing</t></w>
<w><t>cic-e-ly</t></w>
<w><t>Cic-e-ly</t></w>
-<w><t>Cic-e-ro</t></w>
+<w><t>Cic-e-ro</t><noun><convertible-to-possessive/></noun></w>
<w><t>cic-e-ro</t></w>
<w><t>cic-e-ro-ne</t></w>
<w><t>Cic-e-ro-ni-an</t></w>
@@ -29854,7 +29855,7 @@
<w><t>coin-age</t></w>
<w><t>co-in-cide</t><verb><regular-root/></verb></w>
<w><t>co-in-cid-ed</t></w>
-<w><t>co-in-ci-dence</t></w>
+<w><t>co-in-ci-dence</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>co-in-ci-dent</t></w>
<w><t>co-in-ci-den-tal</t></w>
<w><t>co-in-ci-den-tal-ly</t></w>
@@ -31088,7 +31089,7 @@
<w><t>com-pli-cat-ed-ly</t></w>
<w><t>com-pli-cat-ed-ness</t></w>
<w><t>com-pli-cat-ing</t></w>
-<w><t>com-pli-ca-tion</t></w>
+<w><t>com-pli-ca-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>com-pli-ca-tive</t></w>
<w><t>com-plice</t></w>
<w><t>com-plic-i-tous</t></w>
@@ -32214,7 +32215,7 @@
<phrase><t>Con-serv-a-tive Par-ty</t></phrase>
<w><t>con-serv-a-toire</t></w>
<w><t>con-ser-va-toire</t></w>
-<w><t>con-ser-va-tor</t></w>
+<w><t>con-ser-va-tor</t><noun><pluralizable/><convertible-to-possessive></convertible-to-possessive></noun></w>
<w><t>con-serv-a-to-ri-um</t></w>
<w><t>con-serv-a-tory</t></w>
<w><t>con-serv-a-to-ry</t></w>
@@ -32500,7 +32501,7 @@
<w><t>con-ta-ki-on</t></w>
<w><t>con-tam-i-na-ble</t></w>
<w><t>con-tam-i-nant</t></w>
-<w><t>con-tam-i-nate</t></w>
+<w><t>con-tam-i-nate</t><verb><regular-root/></verb></w>
<w><t>con-tam-i-nat-ed</t></w>
<w><t>con-tam-i-nat-ing</t></w>
<w><t>con-tam-i-na-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -32540,7 +32541,7 @@
<w><t>con-tem-po-rize</t></w>
<w><t>con-tem-po-rized</t></w>
<w><t>con-tem-po-riz-ing</t></w>
-<w><t>con-tempt</t></w>
+<w><t>con-tempt</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>con-tempt-i-bil-i-ty</t></w>
<w><t>con-tempt-i-ble</t></w>
<w><t>con-tempt-i-ble-ness</t></w>
@@ -39482,7 +39483,7 @@
<w><t>del-toi-dal</t></w>
<w><t>de-lu-brum</t></w>
<w><t>De-luc</t></w>
-<w><t>de-lude</t></w>
+<w><t>de-lude</t><verb><regular-root/></verb></w>
<w><t>de-lud-ed</t></w>
<w><t>de-lud-er</t></w>
<w><t>de-lud-ing</t></w>
@@ -39566,7 +39567,8 @@
<phrase><t>de M-di-cis</t></phrase>
<w><t>deme</t></w>
<w><t>de-mean</t></w>
-<w><t>de-mean-or</t></w>
+<word-placeholder><t>demeanor</t><country-specific country="USA"/></word-placeholder>
+<word-placeholder><t>demeanour</t><country-specific country="GBR"/></word-placeholder>
<w><t>de-ment</t></w>
<w><t>de-ment-ed</t></w>
<w><t>de-ment-ed-ly</t></w>
@@ -40582,7 +40584,7 @@
<w><t>des-ig-nate</t><verb><regular-root/></verb></w>
<w><t>des-ig-nat-ed</t></w>
<w><t>des-ig-nat-ing</t></w>
-<w><t>des-ig-na-tion</t></w>
+<w><t>des-ig-na-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>des-ig-na-tive</t></w>
<w><t>des-ig-na-tor</t></w>
<w><t>des-ig-na-to-ry</t></w>
@@ -42679,7 +42681,7 @@
<w><t>dis-closed</t></w>
<w><t>dis-clos-er</t></w>
<w><t>dis-clos-ing</t></w>
-<w><t>dis-clo-sure</t></w>
+<w><t>dis-clo-sure</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-co</t></w>
<w><t>dis-cob-o-los</t></w>
<w><t>dis-cob-o-lus</t></w>
@@ -42759,7 +42761,7 @@
<w><t>dis-co-phil</t></w>
<w><t>dis-co-phile</t></w>
<w><t>dis-cord</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
-<w><t>dis-cord-ance</t></w>
+<w><t>dis-cord-ance</t><noun><pluralizable/></noun></w>
<w><t>dis-cord-an-cy</t></w>
<w><t>dis-cor-dan-cy</t></w>
<w><t>dis-cord-ant</t></w>
@@ -43029,11 +43031,13 @@
<w><t>dis-hon-est</t></w>
<w><t>dis-hon-est-ly</t></w>
<w><t>dis-hon-es-ty</t></w>
-<w><t>dis-hon-or</t><verb><regular-root/></verb></w>
-<w><t>dis-hon-or-a-ble</t></w>
+<word-placeholder><t>dishonor</t><country-specific country="USA"/></word-placeholder>
+<word-placeholder><t>dishonorable</t><country-specific country="USA"/></word-placeholder>
<w><t>dis-hon-or-a-ble-ness</t></w>
<w><t>dis-hon-or-a-bly</t></w>
<w><t>dis-hon-or-er</t></w>
+<word-placeholder><t>dishonour</t><country-specific country="GBR"/></word-placeholder>
+<word-placeholder><t>dishonourable</t><country-specific country="GBR"/></word-placeholder>
<w><t>dish-pan</t></w>
<w><t>dish-rag</t></w>
<w><t>dish-tow-el</t></w>
@@ -43154,7 +43158,7 @@
<w><t>dis-miss-al</t></w>
<w><t>dis-mis-sal</t></w>
<w><t>dis-miss-i-ble</t></w>
-<w><t>dis-mis-sion</t></w>
+<w><t>dis-mis-sion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>dis-mis-sive</t></w>
<w><t>dis-mount</t></w>
<w><t>dis-mount-a-ble</t></w>
@@ -44547,7 +44551,7 @@
<w><t>Don-ny</t></w>
<w><t>don-ny</t></w>
<w><t>don-ny-brook</t></w>
-<w><t>do-nor</t></w>
+<w><t>do-nor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>do-nor-ship</t></w>
<w><t>do=noth-ing</t></w>
<w><t>do=noth-ing-ism</t></w>
@@ -45299,6 +45303,7 @@
<w><t>drat</t></w>
<w><t>drat-ted</t></w>
<w><t>drat-ting</t></w>
+<word-placeholder><t>draught</t><country-specific country="GBR"/></word-placeholder>
<w><t>Dra-va</t></w>
<w><t>drave</t></w>
<w><t>Dra-ve</t></w>
@@ -46104,7 +46109,7 @@
<w><t>du-plex-i-ty</t></w>
<w><t>du-pli-ca-bil-i-ty</t></w>
<w><t>du-pli-ca-ble</t></w>
-<w><t>du-pli-cate</t></w>
+<w><t>du-pli-cate</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<phrase><t>du-pli-cate bridge</t></phrase>
<w><t>du-pli-cat-ed</t></w>
<w><t>du-pli-cat-ing</t></w>
@@ -46749,8 +46754,7 @@
<w><t>e-bul-lient</t></w>
<w><t>e-bul-lient-ly</t></w>
<w><t>e-bul-li-os-co-py</t></w>
-<w><t>eb-ul-li-tion</t></w>
-<w><t>e-bul-li-tion</t></w>
+<w><t>eb-ul-li-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>e-bur-na-tion</t></w>
<w><t>e-cad</t></w>
<w><t>e-cal-ca-rate</t></w>
@@ -48247,7 +48251,7 @@
<w><t>e-lu-ci-date</t></w>
<w><t>e-lu-ci-dat-ed</t></w>
<w><t>e-lu-ci-dat-ing</t></w>
-<w><t>e-lu-ci-da-tion</t></w>
+<w><t>e-lu-ci-da-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>e-lu-ci-da-tive</t></w>
<w><t>e-lu-ci-da-tor</t></w>
<w><t>e-lude</t></w>
@@ -49409,7 +49413,7 @@
<w><t>en-gross-ment</t></w>
<w><t>en-gulf</t><verb><regular-root/></verb></w>
<w><t>en-gulf-ment</t></w>
-<w><t>en-hance</t></w>
+<w><t>en-hance</t><verb><regular-root/></verb></w>
<w><t>en-hanced</t></w>
<w><t>en-hance-ment</t></w>
<w><t>en-hanc-er</t></w>
@@ -49502,7 +49506,7 @@
<w><t>En-nis</t></w>
<w><t>En-nis-kil-len</t></w>
<w><t>En-ni-us</t></w>
-<w><t>en-no-ble</t></w>
+<w><t>en-no-ble</t><verb><regular-root/></verb></w>
<w><t>en-no-ble-ment</t></w>
<w><t>en-no-bler</t></w>
<w><t>en-no-bling-ly</t></w>
@@ -50486,7 +50490,7 @@
<w><t>e-qual-i-tar-i-an-ism</t></w>
<w><t>e-qual-i-ty</t></w>
<w><t>e-qual-i-za-tion</t></w>
-<w><t>e-qual-ize</t></w>
+<w><t>e-qual-ize</t><verb><regular-root/></verb></w>
<w><t>e-qual-ized</t></w>
<w><t>e-qual-iz-er</t></w>
<w><t>e-qual-iz-ing</t></w>
@@ -52182,7 +52186,7 @@
<w><t>ex-a-men</t></w>
<w><t>ex-am-in-a-ble</t></w>
<w><t>ex-am-i-nant</t></w>
-<w><t>ex-am-i-na-tion</t></w>
+<w><t>ex-am-i-na-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ex-am-i-na-tion-al</t></w>
<w><t>ex-am-i-na-to-ri-al</t></w>
<w><t>ex-am-ine</t><verb><regular-root/></verb></w>
@@ -54417,7 +54421,7 @@
<w><t>Fa-vo-ni-a</t></w>
<w><t>fa-vo-ni-an</t></w>
<w><t>Fa-vo-ni-us</t></w>
-<w><t>fa-vor</t><verb><regular-root/></verb></w>
+<word-placeholder><t>favor</t><country-specific country="USA"/></word-placeholder>
<w><t>fa-vor-a-ble</t></w>
<w><t>fa-vor-a-ble-ness</t></w>
<w><t>fa-vor-a-bly</t></w>
@@ -54426,18 +54430,20 @@
<w><t>fa-vored-ness</t></w>
<w><t>fa-vor-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>fa-vor-ing-ly</t></w>
-<w><t>fa-vor-ite</t><noun><pluralizable/><convertible-to-possessive/></noun><adjective></adjective></w>
+<word-placeholder><t>favorite</t><country-specific country="USA"/></word-placeholder>
<phrase><t>fa-vor-ite son</t></phrase>
<w><t>fa-vor-it-ism</t></w>
<w><t>fa-vor-less</t></w>
<w><t>fa-vors</t></w>
<w><t>fav-o-site</t></w>
-<w><t>fa-vour</t></w>
+<word-placeholder><t>favour</t><country-specific country="GBR"/></word-placeholder>
<w><t>fa-vour-a-ble</t></w>
<w><t>fa-vour-a-bly</t></w>
<w><t>fa-voured</t></w>
<w><t>fa-voured-ness</t></w>
<w><t>fa-vour-ing-ly</t></w>
+<word-placeholder><t>favourite</t><country-specific country="GBR"/></word-placeholder>
+
<w><t>fa-vour-ite</t></w>
<w><t>fa-vour-it-ism</t></w>
<w><t>fa-vour-less</t></w>
@@ -54889,7 +54895,7 @@
<w><t>fer-ma-ta</t></w>
<phrase><t>Fer-mat’s last the-o-rem</t></phrase>
<phrase><t>Fer-mat’s prin-ci-ple</t></phrase>
-<w><t>fer-ment</t></w>
+<w><t>fer-ment</t><verb><regular-root/></verb></w>
<w><t>fer-ment-a-bil-i-ty</t></w>
<w><t>fer-ment-a-ble</t></w>
<w><t>fer-men-ta-tion</t></w>
@@ -55662,7 +55668,7 @@
<w><t>find-ing</t></w>
<w><t>Find-lay</t></w>
<w><t>finds</t><verb><regular-root value="false"/></verb></w>
-<w><t>fine</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>fine</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>fi-ne</t></w>
<w><t>fine-able</t></w>
<w><t>fine-a-ble</t></w>
@@ -65271,7 +65277,7 @@
<phrase><t>gulp-er eel</t></phrase>
<w><t>gulp-ing-ly</t></w>
<w><t>gulp-y</t></w>
-<w><t>gum</t></w>
+<w><t>gum</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>gum ac-croi-des</t></phrase>
<phrase><t>gum am-mo-ni-ac</t></phrase>
<phrase><t>gum ar-a-bic</t></phrase>
@@ -71924,7 +71930,7 @@
<w><t>Hun-gar-i-an</t></w>
<phrase><t>Hun-gar-i-an gou-lash</t></phrase>
<w><t>Hun-ga-ry</t></w>
-<w><t>hun-ger</t></w>
+<w><t>hun-ger</t><noun><singular/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>hun-ger-ing-ly</t></w>
<w><t>hun-ger-less</t></w>
<w><t>hun-ger-ly</t></w>
@@ -74149,7 +74155,7 @@
<w><t>il-lu-mi-na-ble</t></w>
<w><t>il-lu-mi-nance</t></w>
<w><t>il-lu-mi-nant</t></w>
-<w><t>il-lu-mi-nate</t></w>
+<w><t>il-lu-mi-nate</t><verb><regular-root/></verb></w>
<w><t>il-lu-mi-nat-ed</t></w>
<w><t>il-lu-mi-na-ti</t></w>
<w><t>Il-lu-mi-na-ti</t></w>
@@ -74920,7 +74926,7 @@
<w><t>im-por-tune-ly</t></w>
<w><t>im-por-tun-er</t></w>
<w><t>im-por-tun-ing</t></w>
-<w><t>im-por-tu-ni-ty</t></w>
+<w><t>im-por-tu-ni-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>im-pos-a-ble</t></w>
<w><t>im-pose</t><verb><regular-root/></verb></w>
<w><t>im-posed</t></w>
@@ -78074,7 +78080,7 @@
<w><t>in-ter-de-ter-min-ing</t></w>
<w><t>in-ter-de-vour</t></w>
<w><t>in-ter-dict</t><verb><regular-root/></verb></w>
-<w><t>in-ter-dic-tion</t></w>
+<w><t>in-ter-dic-tion</t><noun><pluralizable/></noun></w>
<phrase><t>in-ter-dict list</t></phrase>
<w><t>in-ter-dic-tor</t></w>
<w><t>in-ter-dic-to-ry</t></w>
@@ -78741,7 +78747,7 @@
<w><t>in-ter-ro-gat-ed</t></w>
<w><t>in-ter-ro-gat-ing</t></w>
<w><t>in-ter-ro-gat-ing-ly</t></w>
-<w><t>in-ter-ro-ga-tion</t></w>
+<w><t>in-ter-ro-ga-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>in-ter-ro-ga-tion-al</t></w>
<phrase><t>in-ter-ro-ga-tion mark</t></phrase>
<w><t>in-ter-rog-a-tive</t></w>
@@ -79372,7 +79378,7 @@
<w><t>in-ver-sion</t></w>
<w><t>in-ver-sive</t></w>
<w><t>in-ver-sor</t></w>
-<w><t>in-vert</t></w>
+<w><t>in-vert</t><verb><regular-root/></verb></w>
<w><t>in-vert-ase</t></w>
<w><t>in-ver-te-bra-cy</t></w>
<w><t>in-ver-te-brate</t></w>
@@ -79481,7 +79487,7 @@
<w><t>in-vo-lute</t></w>
<w><t>in-vo-lut-ed</t></w>
<w><t>in-vo-lute-ly</t></w>
-<w><t>in-vo-lu-tion</t></w>
+<w><t>in-vo-lu-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>in-vo-lu-tion-al</t></w>
<w><t>in-volve</t><verb><regular-root/></verb></w>
<w><t>in-volved</t></w>
@@ -82030,7 +82036,7 @@
<w><t>ju-di-ca-to-ri-al</t></w>
<w><t>ju-di-ca-to-ries</t></w>
<w><t>ju-di-ca-to-ry</t></w>
-<w><t>ju-di-ca-ture</t></w>
+<w><t>ju-di-ca-ture</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ju-di-ci-a-ble</t></w>
<w><t>ju-di-cial</t><adjective><extensible value="false"/></adjective></w>
<w><t>ju-di-cial-ly</t></w>
@@ -82246,7 +82252,7 @@
<w><t>ju-ris-pru-dent</t></w>
<w><t>ju-ris-pru-den-tial</t></w>
<w><t>ju-ris-pru-den-tial-ly</t></w>
-<w><t>ju-rist</t></w>
+<w><t>ju-rist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>ju-ris-tic</t></w>
<phrase><t>ju-ris-tic act</t></phrase>
<w><t>ju-ris-ti-cal</t></w>
@@ -85101,10 +85107,10 @@
<w><t>laev-u-lin</t></w>
<w><t>laev-u-lose</t></w>
<w><t>La-fa-yette</t></w>
-<phrase><t>La Fa-yette</t></phrase>
+<w><t>La Fa-yette</t></w>
<w><t>Laf-cad-i-o</t></w>
<w><t>La-fitte</t></w>
-<phrase><t>La Fon-taine</t></phrase>
+<w><t>La Fon-taine</t></w>
<w><t>La-forgue</t></w>
<w><t>lag</t></w>
<w><t>lag-an</t></w>
@@ -88728,6 +88734,7 @@
<w><t>Liz-zy</t></w>
<w><t>Ljod</t></w>
<w><t>Lju-blja-na</t></w>
+<w><t>LL.D.</t><abbrev referenced-word="Doctor of Letters"/></w>
<w><t>lla-ma</t></w>
<w><t>Llan-daf</t></w>
<w><t>Llan-daff</t></w>
@@ -88809,7 +88816,7 @@
<w><t>lob-ber</t></w>
<w><t>lob-bied</t></w>
<w><t>lob-bing</t></w>
-<w><t>lob-by</t></w>
+<w><t>lob-by</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>lob-by-er</t></w>
<w><t>lob-by-ing</t></w>
<w><t>lob-by-ism</t></w>
@@ -91446,7 +91453,7 @@
<w><t>mal-e-dic-to-ry</t></w>
<w><t>ma-lee</t></w>
<w><t>mal-e-fac-tion</t></w>
-<w><t>mal-e-fac-tor</t></w>
+<w><t>mal-e-fac-tor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>mal-e-fac-tress</t></w>
<w><t>ma-lef-i-cence</t></w>
<w><t>ma-lef-i-cent</t></w>
@@ -92083,7 +92090,7 @@
<w><t>Mao-ri</t></w>
<w><t>Ma-o-ri</t></w>
<w><t>Mao Tse Tung</t></w>
-<w><t>map</t></w>
+<w><t>map</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>Map</t></w>
<w><t>Mapes</t></w>
<w><t>ma-ple</t></w>
@@ -95569,7 +95576,7 @@
<w><t>mi-grain-oid</t></w>
<w><t>mi-grain-ous</t></w>
<w><t>mi-grant</t></w>
-<w><t>mi-grate</t></w>
+<w><t>mi-grate</t><verb><regular-root/></verb></w>
<w><t>mi-grat-ed</t></w>
<w><t>mi-grat-ing</t></w>
<w><t>mi-gra-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -96380,7 +96387,7 @@
<w><t>mis-dic-tat-ed</t></w>
<w><t>mis-did</t></w>
<w><t>mis-di-div-ed</t></w>
-<w><t>mis-di-rect</t></w>
+<w><t>mis-di-rect</t><verb><regular-root/></verb></w>
<w><t>mis-di-rec-tion</t></w>
<w><t>mis-di-vide</t></w>
<w><t>mis-di-vid-ing</t></w>
@@ -100643,7 +100650,9 @@
<w><t>nee-dle-like</t></w>
<w><t>nee-dle-point</t></w>
<w><t>Nee-dles</t></w>
-<w><t>need-less</t></w>
+<w><t>need-less</t><adjective/></w>
+<w><t>need-less-ly</t><adverb/></w>
+<w><t>need-less-ness</t><noun><singular/></noun></w>
<phrase><t>nee-dle time</t></phrase>
<phrase><t>nee-dle valve</t></phrase>
<w><t>nee-dle-wom-an</t></w>
@@ -105585,7 +105594,7 @@
<w><t>non-per-fec-tion</t></w>
<w><t>non-per-fo-ra-ted</t></w>
<w><t>non-per-fo-ra-ting</t></w>
-<w><t>non-per-form-ance</t></w>
+<w><t>non-per-form-ance</t><noun/></w>
<w><t>non-per-form-er</t></w>
<w><t>non-per-form-ing</t></w>
<w><t>non-per-il-ous</t></w>
@@ -108300,7 +108309,8 @@
<w><t>ob-cu-ne-ate</t></w>
<w><t>obdt</t></w>
<w><t>ob-du-ce</t></w>
-<w><t>ob-du-rate</t></w>
+<w><t>ob-du-ra-cy</t><noun><singular/></noun></w>
+<w><t>ob-du-rate</t><adjective></adjective></w>
<w><t>OBE</t></w>
<w><t>o-be-ah</t></w>
<w><t>o-be-ah-ism</t></w>
@@ -108475,7 +108485,7 @@
<w><t>ob-scur-ed-ly</t></w>
<w><t>ob-scure-ly</t><adverb/></w>
<w><t>ob-scure-ness</t></w>
-<w><t>ob-scu-ri-ty</t></w>
+<w><t>ob-scu-ri-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>ob-scur-um per ob-scur-i-us</t></phrase>
<w><t>ob-se-crate</t></w>
<w><t>ob-se-crat-ed</t></w>
@@ -108591,7 +108601,7 @@
<w><t>ob-ver-sion</t></w>
<w><t>ob-vert</t></w>
<w><t>ob-vi-a-ble</t></w>
-<w><t>ob-vi-ate</t></w>
+<w><t>ob-vi-ate</t><verb><regular-root/></verb></w>
<w><t>ob-vi-at-ed</t></w>
<w><t>ob-vi-at-ing</t></w>
<w><t>ob-vi-ous</t></w>
@@ -110210,7 +110220,7 @@
<w><t>or-dur-ous</t></w>
<w><t>Or-dzho-ni-kid-ze</t></w>
<w><t>Or-dzho-ni-ki-dze</t></w>
-<w><t>ore</t></w>
+<w><t>ore</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>o-re</t></w>
<w><t>o-re-ad</t></w>
<w><t>O-re-bro</t></w>
@@ -114922,7 +114932,8 @@
<w><t>paned</t></w>
<w><t>pan-e-gyr-ic</t></w>
<w><t>pan-e-gy-rise</t></w>
-<w><t>pan-e-gy-rize</t></w>
+<w><t>pan-e-gyr-ist</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>pan-e-gy-rize</t><verb><regular-root/></verb></w>
<w><t>pan-e-gy-rized</t></w>
<w><t>pan-e-gy-riz-ing</t></w>
<w><t>pan-el</t></w>
@@ -115936,11 +115947,12 @@
<w><t>par-tic-i-pan-cy</t></w>
<w><t>par-tic-i-pant</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>par-tic-i-pant-ly</t></w>
-<w><t>par-tic-i-pate</t></w>
+<w><t>par-tic-i-pate</t><verb><regular-root/></verb></w>
<w><t>par-tic-i-pat-ed</t></w>
<w><t>par-tic-i-pat-ing</t></w>
<phrase><t>par-tic-i-pat-ing in-sur-ance</t></phrase>
<w><t>par-tic-i-pa-tion</t></w>
+<w><t>par-tic-i-pa-tor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>par-tic-i-pat-o-ry</t></w>
<w><t>par-ti-cip-i-al</t></w>
<w><t>par-ti-cip-i-al-i-ty</t></w>
@@ -123146,6 +123158,7 @@
<phrase><t>po-ten-tial di-vid-er</t></phrase>
<phrase><t>po-ten-tial en-er-gy</t></phrase>
<w><t>po-ten-ti-al-i-ty</t></w>
+<w><t>po-ten-tial-ly</t><adverb/></w>
<w><t>po-ten-ti-ate</t></w>
<w><t>po-ten-ti-at-ed</t></w>
<w><t>po-ten-ti-at-ing</t></w>
@@ -123395,7 +123408,7 @@
<w><t>Prae-se-pe</t></w>
<w><t>prae-tex-ta</t></w>
<w><t>prae-tex-tae</t></w>
-<w><t>prae-tor</t></w>
+<w><t>prae-tor</t><noun><pluralizable/></noun></w>
<w><t>Prae-to-ri-an</t></w>
<w><t>prae-to-ri-an</t></w>
<phrase><t>Prae-to-ri-an Guard</t></phrase>
@@ -124836,6 +124849,7 @@
<w><t>pre-ëm-i-nent</t></w>
<w><t>pre=em-i-nent</t></w>
<w><t>pre-em-i-nent-ly</t><adverb/></w>
+<w><t>pre=em-i-nent-ly</t><adverb/></w>
<w><t>pre-e-mo-tion</t></w>
<w><t>pre-e-mo-tion-al</t></w>
<w><t>pre-em-per-or</t></w>
@@ -127467,7 +127481,7 @@
<w><t>pro=Cath-o-lic</t></w>
<w><t>pro=Ca-thol-i-cism</t></w>
<w><t>pro-c-bal</t></w>
-<w><t>pro-ce-dure</t></w>
+<w><t>pro-ce-dure</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pro-ceed</t><verb><regular-root/></verb></w>
<w><t>pro-ceed-er</t></w>
<w><t>pro-ceed-ing</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -128194,7 +128208,7 @@
<w><t>pro-pend</t></w>
<w><t>pro-pene</t></w>
<w><t>pro-pe-nol</t></w>
-<w><t>pro-pen-si-ty</t></w>
+<w><t>pro-pen-si-ty</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>pro-pe-nyl</t></w>
<w><t>pro-pe-nyl-ic</t></w>
<w><t>prop-er</t></w>
@@ -134721,7 +134735,8 @@
<w><t>re-ev-i-denced</t></w>
<w><t>re-ev-i-denc-ing</t></w>
<w><t>reev-ing</t></w>
-<w><t>re-ex-am-ine</t></w>
+<w><t>re-ex-am-i-na-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<w><t>re-ex-am-ine</t><verb><regular-root/></verb></w>
<w><t>re=ex-am-ine</t></w>
<w><t>re-ex-am-ined</t></w>
<w><t>re-ex-am-in-ing</t></w>
@@ -135775,7 +135790,7 @@
<w><t>re-learnt</t></w>
<w><t>re-leas-a-bil-i-ty</t></w>
<w><t>re-leas-a-ble</t></w>
-<w><t>re-lease</t></w>
+<w><t>re-lease</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>re-leased</t></w>
<w><t>re-leas-er</t></w>
<w><t>re-leas-i-ble</t></w>
@@ -136442,7 +136457,7 @@
<phrase><t>re-peat-ing dec-i-mal</t></phrase>
<w><t>rep-e-chage</t></w>
<w><t>re-ped-dle</t></w>
-<w><t>re-pel</t></w>
+<w><t>re-pel</t><verb><regular-root/></verb></w>
<w><t>re-pel-lant</t></w>
<w><t>re-pel-lant-ly</t></w>
<w><t>re-pelled</t></w>
@@ -138936,7 +138951,7 @@
<w><t>ri-valled</t></w>
<w><t>ri-val-ling</t></w>
<w><t>ri-val-rous-ness</t></w>
-<w><t>ri-val-ry</t></w>
+<w><t>ri-val-ry</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>rive</t></w>
<w><t>riv-en</t></w>
<w><t>riv-er</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -140064,7 +140079,7 @@
<w><t>ru-der-al</t></w>
<w><t>ru-de-ral</t></w>
<w><t>Ru-des-heim-er</t></w>
-<w><t>ru-di-ment</t></w>
+<w><t>ru-di-ment</t><noun><pluralizable/></noun></w>
<w><t>ru-di-men-tal</t></w>
<w><t>ru-di-men-ta-ri-ly</t></w>
<w><t>ru-di-men-ta-ri-ness</t></w>
@@ -140168,10 +140183,10 @@
<w><t>rum-mer</t></w>
<w><t>rum-my</t></w>
<w><t>Ru-mor</t></w>
-<w><t>ru-mor</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
+<word-placeholder><t>ru-mor</t><country-specific country="USA"/></word-placeholder>
<w><t>ru-mored</t><verb/></w>
<w><t>ru-mor-mon-ger</t></w>
-<w><t>ru-mour</t></w>
+<word-placeholder><t>ru-mour</t><country-specific country="GBR"/></word-placeholder>
<w><t>ru-mour-mon-ger</t></w>
<w><t>rump</t></w>
<w><t>Rum-pel-stilts-kin</t></w>
@@ -142022,7 +142037,7 @@
<w><t>sax-i-fra-ga-ceous</t></w>
<w><t>sax-i-frage</t></w>
<phrase><t>Sax-o Gram-mat-i-cus</t></phrase>
-<w><t>Sax-on</t></w>
+<w><t>Sax-on</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<phrase><t>Sax-on blue</t></phrase>
<w><t>Sax-o-ni-an</t></w>
<w><t>Sax-on-ic</t></w>
@@ -143573,7 +143588,7 @@
<w><t>se-duc-ing</t></w>
<w><t>se-duc-ing-ly</t></w>
<w><t>se-duc-ive</t></w>
-<w><t>se-duc-tion</t></w>
+<w><t>se-duc-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>se-duc-tive</t></w>
<w><t>se-duc-tive-ly</t></w>
<w><t>se-duc-tive-ness</t></w>
@@ -156164,7 +156179,7 @@
<w><t>sub-sti-tute</t><noun><pluralizable/><convertible-to-possessive/></noun><verb><regular-root/></verb></w>
<w><t>sub-sti-tut-ed</t></w>
<w><t>sub-sti-tut-ing</t></w>
-<w><t>sub-sti-tu-tion</t></w>
+<w><t>sub-sti-tu-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>sub-sti-tu-tion-al</t></w>
<w><t>sub-sti-tu-tion-al-ly</t></w>
<w><t>sub-sti-tu-tion-ar-y</t></w>
@@ -157956,7 +157971,8 @@
<w><t>su-per-stim-u-lat-ing</t></w>
<w><t>su-per-stim-u-la-tion</t></w>
<w><t>su-per-sti-tion</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
-<w><t>su-per-sti-tious</t></w>
+<w><t>su-per-sti-tious</t><adjective/></w>
+<w><t>su-per-sti-tious-ly</t><adverb/></w>
<w><t>su-per-sto-i-cal</t></w>
<w><t>su-per-strain</t></w>
<w><t>su-per-stra-tum</t></w>
@@ -161217,6 +161233,7 @@
<w><t>tent-y</t></w>
<w><t>ten-u-es</t></w>
<w><t>ten-u-is</t></w>
+<w><t>te-nu-i-ty</t><noun/></w>
<w><t>ten-u-ous</t></w>
<w><t>ten-u-ous-ly</t></w>
<w><t>ten-u-ous-ness</t></w>
@@ -166103,7 +166120,7 @@
<w><t>tru-an-cy</t></w>
<w><t>tru-ant</t></w>
<w><t>tru-antly</t></w>
-<w><t>truce</t></w>
+<w><t>truce</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
<w><t>truce-less</t></w>
<phrase><t>Tru-cial States</t></phrase>
<w><t>truck</t><noun><pluralizable/><convertible-to-possessive/></noun></w>
@@ -180393,7 +180410,7 @@
<w><t>var-i-er</t></w>
<w><t>va-ri-e-tal</t></w>
<w><t>va-ri-e-tal-ly</t></w>
-<w><t>va-ri-e-ty</t></w>
+<w><t>va-ri-e-ty</t><noun><pluralizable/><convertible-to-possessive></convertible-to-possessive></noun></w>
<phrase><t>va-ri-e-ty meat</t></phrase>
<w><t>var-i-form</t></w>
<w><t>var-i-form-ly</t></w>
Modified: trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml
===================================================================
--- trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml 2024-05-03 21:52:36 UTC (rev 13328)
+++ trunk/foray/foray-orthography/src/main/data/dictionaries/lat-Latn-ZZZ.dict.xml 2024-05-08 17:54:29 UTC (rev 13329)
@@ -15,18 +15,23 @@
<w><t>a</t></w>
<w><t>ab-sent-i-a</t></w>
+<w><t>ac</t></w>
+<w><t>a-cer-bum</t></w>
<w><t>ac-tu</t></w>
<w><t>ad</t></w>
<w><t>al.</t><abbrev referenced-word="alia, alii, aliae, English 'others'."/></w>
<w><t>a-li-as</t></w>
<w><t>al-ter-i-us</t></w>
+<w><t>am-ic-i-tio-res</t></w>
<w><t>am-or</t></w>
<w><t>an-no</t></w>
<w><t>ann-um</t></w>
<w><t>an-te</t></w>
<w><t>a-pel-la</t></w>
+<w><t>a-re-na</t></w>
<w><t>ar-gu-ment-a</t></w>
<w><t>ar-gu-ment-um</t></w>
+<w><t>ar-men-tor-um</t></w>
<w><t>ar-tem</t></w>
<w><t>ar-va</t></w>
<w><t>aut</t></w>
@@ -40,19 +45,24 @@
<w><t>cap-i-ta</t></w>
<w><t>cap-i-te</t></w>
<w><t>cap-tan-dum</t></w>
+<w><t>car-i-tas</t></w>
<w><t>car-men</t></w>
<w><t>car-pe</t></w>
<w><t>ca-sus</t></w>
<w><t>ca-tech-u-men-or-um</t></w>
<w><t>cau-tel-a</t></w>
+<w><t>cen-sus</t><noun/></w>
<w><t>cent</t><abbrev referenced-word="centum"/></w>
<w><t>cen-tum</t><comment>100, as in "per centum" or "percent."</comment></w>
+<w><t>cer-to</t></w>
<w><t>char-ta</t></w>
<w><t>Christ</t></w>
<w><t>cir-ca</t></w>
<w><t>clar-us</t></w>
<w><t>com-i-ta-tus</t></w>
+<w><t>com-par-a-tum</t></w>
<w><t>con</t><abbrev referenced-word="contradicente"/></w>
+<w><t>con-sti-tu-ta</t></w>
<w><t>con-trac-tus</t></w>
<w><t>con-tra-di-cen-te</t></w>
<w><t>con-ven-tus</t></w>
@@ -78,6 +88,7 @@
<w><t>die-bus</t></w>
<w><t>di-em</t></w>
<w><t>dies</t></w>
+<w><t>dig-ni-ta-tis</t></w>
<w><t>di-vin-o</t></w>
<w><t>dix-it</t></w>
<w><t>do-lo-ro-sa</t></w>
@@ -95,6 +106,7 @@
<w><t>est</t></w>
<w><t>et</t></w>
<w><t>etc.</t><abbrev referenced-word="et cetera"/></w>
+<w><t>et-i-am</t></w>
<w><t>et Ux.</t><abbrev referenced-word="et Uxor (and wife)"/></w>
<w><t>e-van-gel-i-ar-i-um</t></w>
<w><t>ex</t></w>
@@ -110,6 +122,7 @@
<w><t>fide</t></w>
<w><t>fi-del-i-um</t></w>
<w><t>fi-eri</t></w>
+<w><t>fil-i-or-um</t></w>
<w><t>fit</t></w>
<w><t>foe-de-ris</t></w>
<w><t>fœ-de-ris</t></w>
@@ -127,6 +140,7 @@
<w><t>ha-bet</t></w>
<w><t>hac</t></w>
<w><t>hoc</t></w>
+<w><t>hom-i-cid-i-um</t></w>
<w><t>ho-mi-nem</t></w>
<w><t>hor-as</t></w>
<w><t>hy-dro-ma-ni-a</t></w>
@@ -153,6 +167,7 @@
<w><t>ju-ris</t></w>
<w><t>jus</t></w>
<w><t>leg-em</t></w>
+<w><t>leg-i-bus</t></w>
<w><t>lex</t></w>
<w><t>li-ber-or-um</t></w>
<w><t>li-ber-tas</t></w>
@@ -161,10 +176,14 @@
<w><t>lin-qui-mus</t></w>
<w><t>lo-ci</t></w>
<w><t>lo-co</t></w>
+<w><t>lu-i</t></w>
+<w><t>lu-i-tur</t></w>
<w><t>mag-na</t></w>
<w><t>ma-jor-i</t></w>
+<w><t>ma-la</t></w>
<w><t>man-dam-us</t></w>
<w><t>mane</t></w>
+<w><t>Mar-cel-lo</t></w>
<w><t>max-im</t><noun><singular/></noun></w>
<w><t>max-ims</t><noun><plural/></noun></w>
<w><t>me-ro</t></w>
@@ -176,6 +195,7 @@
<w><t>mor-as</t></w>
<w><t>mort-main</t></w>
<w><t>mo-tu</t></w>
+<w><t>mul-ta</t></w>
<w><t>nas-ci-tur</t></w>
<w><t>ne</t></w>
<w><t>ne-ces-sar-i-um</t></w>
@@ -190,15 +210,21 @@
<w><t>non</t></w>
<w><t>nos</t></w>
<w><t>no-vo</t></w>
+<w><t>nu-mer-o</t></w>
<w><t>o-di-um</t></w>
<w><t>of-fi-cio</t></w>
<w><t>om-nes</t></w>
<w><t>om-nia</t></w>
+<w><t>op-ti-mè</t></w>
+<w><t>or-a-tio</t></w>
<w><t>or-i-gin-es</t></w>
+<w><t>or-na-ment-a</t></w>
<w><t>o-vum</t></w>
<w><t>pacta</t></w>
<w><t>pa-ra-tus</t></w>
-<w><t>pa-rent-is</t></w>
+<w><t>pa-ren-tes</t></w>
+<w><t>pa-ren-tis</t></w>
+<w><t>pa-ren-tum</t></w>
<w><t>pa-ri</t></w>
<w><t>par-i-bus</t></w>
<w><t>par-te</t></w>
@@ -210,15 +236,18 @@
<w><t>pa-tri-am</t></w>
<w><t>pa-tri-cian</t><noun><singular/></noun></w>
<w><t>pa-tri-cians</t><noun><plural/></noun></w>
+<w><t>pe-cor-um</t></w>
<w><t>Pen-te-cost-it</t></w>
<w><t>pen-um-bra</t><noun/></w>
<w><t>per</t></w>
<w><t>per-de-re</t></w>
+<w><t>per-de-ret</t></w>
<w><t>pe-ri-ti</t></w>
<w><t>per-son-ae</t></w>
<w><t>pe-ti-tio</t></w>
<w><t>ple-be-ian</t><noun><singular/></noun></w>
<w><t>ple-be-ians</t><noun><plural/></noun></w>
+<w><t>pœnis</t></w>
<w><t>pop-u-li</t></w>
<w><t>pos-se</t></w>
<w><t>pos-se-det-is</t></w>
@@ -227,13 +256,16 @@
<w><t>po-tent-i-æ</t></w>
<w><t>po-test</t></w>
<w><t>præ-cept-um</t></w>
+<w><t>præ-sid-i-a</t></w>
<w><t>præ-stat-ur</t></w>
<w><t>præ-ter-e-a</t></w>
<w><t>pre-amble</t></w>
+<w><t>pre-clarè</t></w>
<w><t>prin-ci-pii</t></w>
<w><t>pri-or-i</t></w>
<w><t>pri-us</t></w>
<w><t>pro</t></w>
+<w><t>pro-hi-bi-ta</t></w>
<w><t>prop-a-gan-da</t></w>
<w><t>purum</t></w>
<w><t>qua</t></w>
@@ -242,6 +274,7 @@
<w><t>quære</t></w>
<w><t>quale</t></w>
<w><t>quan-tum</t></w>
+<w><t>quas-sa-ta</t></w>
<w><t>quem</t></w>
<w><t>qui</t></w>
<w><t>quic-quid</t></w>
@@ -253,25 +286,30 @@
<w><t>ra-sa</t></w>
<w><t>ra-ti-o</t></w>
<w><t>ra-tion-ale</t></w>
+<w><t>red-der-et</t></w>
<w><t>re-gum</t></w>
<w><t>rei</t></w>
<w><t>rei-pub-li-cae</t></w>
<w><t>rei-pub-li-cæ</t></w>
+<w><t>re-pub-li-ca</t></w>
<w><t>re-sid-u-um</t></w>
+<w><t>res-pub-li-ca</t></w>
<w><t>ritus</t></w>
<w><t>sac-rae</t></w>
<w><t>sac-ris</t></w>
<w><t>sal-us</t></w>
+<w><t>sce-le-ra</t></w>
<w><t>scire</t></w>
<w><t>scrip-tur-a</t></w>
<w><t>se</t></w>
<w><t>se-cun-dum</t></w>
+<w><t>sed</t></w>
<w><t>sem-per</t></w>
<w><t>seq</t><abbrev referenced-word="sequens"/></w>
<w><t>se-quens</t></w>
<w><t>se-qui-tur</t></w>
+<w><t>serv-il-i-um</t></w>
<w><t>ser-vi-re</t></w>
-<w><t>serv-il-i-um</t></w>
<w><t>serv-it-i-um</t></w>
<w><t>ser-vi-tus</t></w>
<w><t>sig-no</t></w>
@@ -281,10 +319,12 @@
<w><t>so-la</t></w>
<w><t>so-li</t></w>
<w><t>spe-cies</t></w>
+<w><t>sta-bil-i-ta-tis</t></w>
<w><t>sta-tu</t></w>
<w><t>sta-tus</t></w>
<w><t>stim-u-li</t></w>
<w><t>su-a</t></w>
+<w><t>su-æ</t></w>
<w><t>su-as</t></w>
<w><t>sub</t></w>
<w><t>sub-stra-tum</t></w>
@@ -299,6 +339,7 @@
<w><t>tem.</t><abbrev referenced-word="tempore"/></w>
<w><t>tem-po-re</t></w>
<w><t>tene-tur</t></w>
+<w><t>ter-mi-ni</t></w>
<w><t>ter-ræ</t></w>
<w><t>ter-ror-em</t></w>
<w><t>tes-te</t><comment>1. the witnessing or concluding clause of an
@@ -315,13 +356,15 @@
<w><t>ul-ti-ma-tum</t></w>
<w><t>ul-tra</t></w>
<w><t>un-i-us</t></w>
+<w><t>ut</t></w>
<w><t>u-ti</t></w>
<w><t>vag-um</t></w>
<w><t>va-lo-rem</t></w>
+<w><t>ven-i-re</t></w>
<w><t>ven-ue</t></w>
<w><t>ver-a</t></w>
+<w><t>ver-ba-tim</t><adjective/><adverb/></w>
<w><t>ver-i</t></w>
-<w><t>ver-ba-tim</t><adjective/><adverb/></w>
<w><t>ver-sa</t></w>
<w><t>ver-sus</t></w>
<w><t>ves-pere</t></w>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-05-03 21:52:38
|
Revision: 13328
http://sourceforge.net/p/foray/code/13328
Author: victormote
Date: 2024-05-03 21:52:36 +0000 (Fri, 03 May 2024)
Log Message:
-----------
Separate normal ad-hoc dictionaries from free dictionaries, one managed by the orthography, the other by the orthography server.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Orthography4aVariant.java
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4a.java
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aStandard.java
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aVariant.java
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Orthography4aVariant.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Orthography4aVariant.java 2024-05-03 19:25:54 UTC (rev 13327)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Orthography4aVariant.java 2024-05-03 21:52:36 UTC (rev 13328)
@@ -45,6 +45,9 @@
/** The wrapped orthography, which provides the base functionality for any features not overridden. */
private Orthography4aStandard wrapped;
+ /** The parent server. */
+ private OrthographyServer4aVariant server;
+
/** The dictionary overriding that provided by {@link #wrapped}. */
private SegmentDictionary dictionary;
@@ -51,16 +54,19 @@
/**
* Constructor.
* @param wrapped The base server that is being wrapped and overriden by this instance.
+ * @param server The parent server.
* @param dictionary The dictionary overriding that provided by {@code #wrapped}.
*/
- public Orthography4aVariant(final Orthography4aStandard wrapped, final SegmentDictionary dictionary) {
+ public Orthography4aVariant(final Orthography4aStandard wrapped, final OrthographyServer4aVariant server,
+ final SegmentDictionary dictionary) {
this.wrapped = wrapped;
+ this.server = server;
this.dictionary = dictionary;
}
@Override
public OrthographyServer4a getServer() {
- return this.wrapped.getServer();
+ return this.server;
}
@Override
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4a.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4a.java 2024-05-03 19:25:54 UTC (rev 13327)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4a.java 2024-05-03 21:52:36 UTC (rev 13328)
@@ -68,14 +68,25 @@
public abstract List<DerivativePattern> getDerivativePatterns(String id);
/**
+ * Throws an exception if a given dictionary id is already registered.
+ * @param id The id to be tested.
+ */
+ private void checkExistingDictionaryId(final String id) {
+ if (this.dictionaryResourcesMap.get(id) != null) {
+ throw new IllegalArgumentException("DictionaryResource already exist for id: " + id);
+ }
+ if (this.dictionaryMap.get(id) != null) {
+ throw new IllegalArgumentException("Dictionary already exist for id: " + id);
+ }
+ }
+
+ /**
* Registers a dictionary.
* @param id The id of the dictionary to be registered.
* @param resource The dictionary resource being registered.
*/
public void registerDictionaryResource(final String id, final DictionaryResource resource) {
- if (this.dictionaryResourcesMap.get(id) != null) {
- throw new IllegalArgumentException("DictionaryResource already exist for id: " + id);
- }
+ checkExistingDictionaryId(id);
this.dictionaryResourcesMap.put(id, resource);
}
@@ -94,6 +105,7 @@
* @param dictionary The dictionary to be registered.
*/
public void registerDictionary(final String id, final SegmentDictionary dictionary) {
+ checkExistingDictionaryId(id);
this.dictionaryMap.put(id, dictionary);
}
@@ -102,12 +114,14 @@
SegmentDictionary dict = this.dictionaryMap.get(id);
if (dict == null) {
final DictionaryResource resource = getDictionaryResource(id);
- dict = resource.getResource();
- this.dictionaryMap.put(id, dict);
+ if (resource != null) {
+ dict = resource.getResource();
+ this.dictionaryMap.put(id, dict);
+ }
/* TODO: Consider whether the id should be removed from the resource map. */
// this.dictionaryResourcesMap.remove(id);
}
- return null;
+ return dict;
}
}
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aStandard.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aStandard.java 2024-05-03 19:25:54 UTC (rev 13327)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aStandard.java 2024-05-03 21:52:36 UTC (rev 13328)
@@ -160,13 +160,17 @@
@Override
public SegmentDictionary getDictionary(final String dictionaryId) {
- final DictionaryResource resource = this.getDictionaryResource(dictionaryId);
- if (resource == null) {
- this.logger.warn("Dictionary not found: {}", dictionaryId);
- return null;
- } else {
- return resource.getResource();
+ SegmentDictionary dict = super.getDictionary(dictionaryId);
+ if (dict == null) {
+ final DictionaryResource resource = this.getDictionaryResource(dictionaryId);
+ if (resource == null) {
+ this.logger.warn("Dictionary not found: {}", dictionaryId);
+ return null;
+ } else {
+ dict = resource.getResource();
+ }
}
+ return dict;
}
@Override
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aVariant.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aVariant.java 2024-05-03 19:25:54 UTC (rev 13327)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aVariant.java 2024-05-03 21:52:36 UTC (rev 13328)
@@ -67,12 +67,16 @@
@Override
public SegmentDictionary getDictionary(final String dictionaryId) {
- final DictionaryResource resource = getDictionaryResource(dictionaryId);
- if (resource == null) {
- return this.wrapped.getDictionary(dictionaryId);
- } else {
- return resource.getResource();
+ SegmentDictionary dict = super.getDictionary(dictionaryId);
+ if (dict == null) {
+ final DictionaryResource resource = getDictionaryResource(dictionaryId);
+ if (resource == null) {
+ dict = this.wrapped.getDictionary(dictionaryId);
+ } else {
+ dict = resource.getResource();
+ }
}
+ return dict;
}
@Override
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-05-03 19:25:54 UTC (rev 13327)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-05-03 21:52:36 UTC (rev 13328)
@@ -182,42 +182,62 @@
* @param output The output stream to which the spelling errors should be written.
* @param orthographyConfigPath The path to the orthography configuration.
* @param xmlCatalogPath The path to a catalog file to be used for entity resolution.
- * @param adhocDictionaryPaths (optional) List of paths to ad-hoc dictionaries to be used by the spell-checker.
+ * @param adhocDictionaryPath (optional) Path to an ad-hoc dictionary to be used by the spell-checker.
* This is useful for cases where a document has words that are not found in standard dictionaries.
* This can be null.
+ * @param freeDictionaryPaths (optional) List of paths to free dictionaries available to the spell-checker.
+ * A free dictionary is one that will not be found using the writing system / orthography search mechanism, but is
+ * available only by its id.
+ * This is useful for cases where one dictionary imports another, which is done by id.
* @throws OrthographyException For errors during configuration of the hyphenation server.
* @throws IOException For input/output errors during parsing.
* @throws SAXException For errors found by the SAX parser.
*/
public SpellChecker(final PrintStream output, final URL orthographyConfigPath, final String xmlCatalogPath,
- final List<URL> adhocDictionaryPaths) throws OrthographyException, IOException, SAXException {
+ final URL adhocDictionaryPath, final List<URL> freeDictionaryPaths)
+ throws OrthographyException, IOException, SAXException {
this.output = output;
final OrthographyServerConfig serverConfig = new OrthographyServerConfig();
serverConfig.setOrthographyConfigurationLocation(orthographyConfigPath);
final OrthographyServer4aStandard baseServer = new OrthographyServer4aStandard(serverConfig);
- if (adhocDictionaryPaths == null
- || adhocDictionaryPaths.size() < 1) {
+
+ if (adhocDictionaryPath == null) {
this.server = baseServer;
} else {
final OrthographyServer4aVariant variantServer = new OrthographyServer4aVariant(baseServer);
- for (URL adhocDictionaryPath : adhocDictionaryPaths) {
- final DictionaryParser dictParser = new DictionaryParser();
- this.logger.info("Parsing Ad-hoc Dictionary: " + adhocDictionaryPath.toExternalForm());
- dictParser.setLogDictionaryProblems(true);
- final InputSource source = new InputSource(adhocDictionaryPath.toExternalForm());
- final List<SegmentDictionary> dictionaries = dictParser.parse(source);
- for (SegmentDictionary dictionary : dictionaries) {
- variantServer.registerDictionary(dictionary.getId(), dictionary);
- final WritingSystem writingSystem = dictionary.getWritingSystem();
- Orthography4aVariant variantOrthography = variantServer.getOrthographyVariant(writingSystem);
- if (variantOrthography == null) {
- final Orthography4aStandard baseOrthography = baseServer.getOrthography(writingSystem);
- variantOrthography = new Orthography4aVariant(baseOrthography, dictionary);
- variantServer.registerOrthography(writingSystem, variantOrthography);
+
+ /* Parse the free dictionaries first, so that the main ad-hoc dictionary can find them as it is parsed. */
+ if (freeDictionaryPaths != null) {
+ for (URL freeDictionaryPath : freeDictionaryPaths) {
+ final DictionaryParser dictParser = new DictionaryParser();
+ this.logger.info("Parsing Free Dictionary: " + freeDictionaryPath.toExternalForm());
+ dictParser.setLogDictionaryProblems(true);
+ final InputSource source = new InputSource(freeDictionaryPath.toExternalForm());
+ final List<SegmentDictionary> dictionaries = dictParser.parse(source);
+ for (SegmentDictionary dictionary : dictionaries) {
+ variantServer.registerDictionary(dictionary.getId(), dictionary);
}
}
}
+
+ /* Parse the main ad-hoc dictionary. */
+ final DictionaryParser dictParser = new DictionaryParser();
+ this.logger.info("Parsing Ad-hoc Dictionary: " + adhocDictionaryPath.toExternalForm());
+ dictParser.setLogDictionaryProblems(true);
+ final InputSource source = new InputSource(adhocDictionaryPath.toExternalForm());
+ final List<SegmentDictionary> dictionaries = dictParser.parse(source);
+ for (SegmentDictionary dictionary : dictionaries) {
+ variantServer.registerDictionary(dictionary.getId(), dictionary);
+ final WritingSystem writingSystem = dictionary.getWritingSystem();
+ Orthography4aVariant variantOrthography = variantServer.getOrthographyVariant(writingSystem);
+ if (variantOrthography == null) {
+ final Orthography4aStandard baseOrthography = baseServer.getOrthography(writingSystem);
+ variantOrthography = new Orthography4aVariant(baseOrthography, variantServer, dictionary);
+ variantServer.registerOrthography(writingSystem, variantOrthography);
+ }
+ }
+
this.server = variantServer;
}
@@ -441,18 +461,22 @@
input.setRequired(true);
final Option stylesheet = new Option("s", "stylesheet",
true, "stylesheet to convert input to axsl-spell-check-input");
- final Option factory = new Option("f", "factory-class", true, "XSLT TransformerFactory class name");
+ final Option transformerFactory =
+ new Option("t", "transformer-factory-class", true, "XSLT TransformerFactory class name");
final Option config = new Option("c", "config", true, "path to orthography configuration");
final Option xmlCatalog = new Option("x", "xml-catalog", true, "path to XML catalog file");
- final Option dictionaries = new Option("d", "dictionary", true, "path(s) to ad-hoc dictionary(ies)");
- dictionaries.setArgs(Option.UNLIMITED_VALUES);
+ final Option dictionaries = new Option("d", "dictionary", true, "path to ad-hoc dictionary");
+ final Option freeDictionaries =
+ new Option("f", "free-dictionary", true, "path to dictionary accessible only by id");
+ freeDictionaries.setArgs(Option.UNLIMITED_VALUES);
clOptions.addOption(input);
clOptions.addOption(stylesheet);
- clOptions.addOption(factory);
+ clOptions.addOption(transformerFactory);
clOptions.addOption(config);
clOptions.addOption(xmlCatalog);
clOptions.addOption(dictionaries);
+ clOptions.addOption(freeDictionaries);
return clOptions;
}
@@ -479,10 +503,11 @@
final String input = parsedCommandLine.getOptionValue("input");
final String stylesheet = parsedCommandLine.getOptionValue("stylesheet");
- final String factoryClass = parsedCommandLine.getOptionValue("factory-class");
+ final String transformerFactoryClass = parsedCommandLine.getOptionValue("transformer-factory-class");
final String config = parsedCommandLine.getOptionValue("config");
final String xmlCatalog = parsedCommandLine.getOptionValue("xml-catalog");
- final String[] dictionariesArray = parsedCommandLine.getOptionValues("dictionary");
+ final String dictionary = parsedCommandLine.getOptionValue("dictionary");
+ final String[] freeDictionariesArray = parsedCommandLine.getOptionValues("free-dictionary");
InputStream inputStream = null;
try {
@@ -509,11 +534,11 @@
final File xsltFile = new File(stylesheet);
final Source xsltSource = new StreamSource(xsltFile);
final TransformerFactory transformerFactory;
- if (factoryClass == null) {
+ if (transformerFactoryClass == null) {
transformerFactory = TransformerFactory.newInstance();
} else {
- transformerFactory = TransformerFactory.newInstance(factoryClass, null);
- if ("net.sf.saxon.TransformerFactoryImpl".equals(factoryClass)) {
+ transformerFactory = TransformerFactory.newInstance(transformerFactoryClass, null);
+ if ("net.sf.saxon.TransformerFactoryImpl".equals(transformerFactoryClass)) {
transformerFactory.setFeature("http://saxon.sf.net/feature/linenumbering", true);
}
}
@@ -527,16 +552,18 @@
}
final URL orthographyConfigPath = new URL(config);
- List<URL> dictionaries = null;
- if (dictionariesArray != null) {
- dictionaries = new ArrayList<URL>();
- for (String path : dictionariesArray) {
- final URL dictionary = new URL(path);
- dictionaries.add(dictionary);
+ final URL dictionaryUrl = new URL(dictionary);
+ List<URL> freeDictionaries = null;
+ if (freeDictionariesArray != null) {
+ freeDictionaries = new ArrayList<URL>();
+ for (String path : freeDictionariesArray) {
+ final URL freeDictionary = new URL(path);
+ freeDictionaries.add(freeDictionary);
}
}
- final SpellChecker checker = new SpellChecker(output, orthographyConfigPath, xmlCatalog, dictionaries);
+ final SpellChecker checker =
+ new SpellChecker(output, orthographyConfigPath, xmlCatalog, dictionaryUrl, freeDictionaries);
checker.parse(inputSource);
} catch (final OrthographyException | IOException | SAXException | TransformerException e) {
logger.error("Error configuring or running: " + input, e);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <vic...@us...> - 2024-05-03 19:25:56
|
Revision: 13327
http://sourceforge.net/p/foray/code/13327
Author: victormote
Date: 2024-05-03 19:25:54 +0000 (Fri, 03 May 2024)
Log Message:
-----------
Handle dictionaries parsed outside of the orthography / dictionary resource scheme.
Modified Paths:
--------------
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4a.java
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aStandard.java
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/OrthographyParser.java
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4a.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4a.java 2024-05-03 16:55:28 UTC (rev 13326)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4a.java 2024-05-03 19:25:54 UTC (rev 13327)
@@ -40,9 +40,13 @@
*/
public abstract class OrthographyServer4a implements FoOrthographyServer {
- /** Map whose key is a dictionary ID, and whose value is the matching dictionary resource. */
- private Map<String, DictionaryResource> dictionaryMap = new HashMap<String, DictionaryResource>();
+ /** Map whose key is a dictionary ID, and whose value is the matching dictionary resource. This is storage for
+ * unparsed, unresolved dictionaries. */
+ private Map<String, DictionaryResource> dictionaryResourcesMap = new HashMap<String, DictionaryResource>();
+ /** Map whose key is a dictionary ID, and whose value is the matching dictionary. */
+ private Map<String, SegmentDictionary> dictionaryMap = new HashMap<String, SegmentDictionary>();
+
@Override
public abstract Orthography4a getOrthography(WritingSystem writingSystem);
@@ -68,11 +72,11 @@
* @param id The id of the dictionary to be registered.
* @param resource The dictionary resource being registered.
*/
- public void registerDictionary(final String id, final DictionaryResource resource) {
- if (this.dictionaryMap.get(id) != null) {
+ public void registerDictionaryResource(final String id, final DictionaryResource resource) {
+ if (this.dictionaryResourcesMap.get(id) != null) {
throw new IllegalArgumentException("DictionaryResource already exist for id: " + id);
}
- this.dictionaryMap.put(id, resource);
+ this.dictionaryResourcesMap.put(id, resource);
}
/**
@@ -81,7 +85,29 @@
* @return The dictionary resource for {@code id}.
*/
public DictionaryResource getDictionaryResource(final String id) {
- return this.dictionaryMap.get(id);
+ return this.dictionaryResourcesMap.get(id);
}
+ /**
+ * Registers an already-parsed dictionary with this server.
+ * @param id The id of the dictionary to be registered.
+ * @param dictionary The dictionary to be registered.
+ */
+ public void registerDictionary(final String id, final SegmentDictionary dictionary) {
+ this.dictionaryMap.put(id, dictionary);
+ }
+
+ @Override
+ public SegmentDictionary getDictionary(final String id) {
+ SegmentDictionary dict = this.dictionaryMap.get(id);
+ if (dict == null) {
+ final DictionaryResource resource = getDictionaryResource(id);
+ dict = resource.getResource();
+ this.dictionaryMap.put(id, dict);
+ /* TODO: Consider whether the id should be removed from the resource map. */
+// this.dictionaryResourcesMap.remove(id);
+ }
+ return null;
+ }
+
}
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aStandard.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aStandard.java 2024-05-03 16:55:28 UTC (rev 13326)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/OrthographyServer4aStandard.java 2024-05-03 19:25:54 UTC (rev 13327)
@@ -115,7 +115,7 @@
// }
/* Not every orthography has a dictionary resource. */
if (resource != null) {
- registerDictionary(resource.getId(), resource);
+ registerDictionaryResource(resource.getId(), resource);
}
}
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/OrthographyParser.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/OrthographyParser.java 2024-05-03 16:55:28 UTC (rev 13326)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/OrthographyParser.java 2024-05-03 19:25:54 UTC (rev 13327)
@@ -517,7 +517,8 @@
return;
}
case "dictionary-resource": {
- this.hyphenationServer.registerDictionary(currentDictionaryResource.getId(), currentDictionaryResource);
+ this.hyphenationServer.registerDictionaryResource(currentDictionaryResource.getId(),
+ currentDictionaryResource);
this.currentDictionaryResource = null;
return;
}
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-05-03 16:55:28 UTC (rev 13326)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/util/SpellChecker.java 2024-05-03 19:25:54 UTC (rev 13327)
@@ -208,6 +208,7 @@
final InputSource source = new InputSource(adhocDictionaryPath.toExternalForm());
final List<SegmentDictionary> dictionaries = dictParser.parse(source);
for (SegmentDictionary dictionary : dictionaries) {
+ variantServer.registerDictionary(dictionary.getId(), dictionary);
final WritingSystem writingSystem = dictionary.getWritingSystem();
Orthography4aVariant variantOrthography = variantServer.getOrthographyVariant(writingSystem);
if (variantOrthography == null) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|