summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/inflexion
diff options
context:
space:
mode:
authorbjculkin <bjculkin@mix.wvu.edu>2017-04-05 09:55:46 -0400
committerbjculkin <bjculkin@mix.wvu.edu>2017-04-05 09:55:46 -0400
commit8259732a0e1d70284adcc6e7ef492603a3d59565 (patch)
treedddf7426a5df91d7c72c95c4f8a86c9e33bafb5f /src/main/java/bjc/inflexion
parent33ca2d7aab7405cff287ac2248079fe60fee779a (diff)
More plural fixes
Diffstat (limited to 'src/main/java/bjc/inflexion')
-rw-r--r--src/main/java/bjc/inflexion/v2/Nouns.java26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/main/java/bjc/inflexion/v2/Nouns.java b/src/main/java/bjc/inflexion/v2/Nouns.java
index 3a97be3..e2609be 100644
--- a/src/main/java/bjc/inflexion/v2/Nouns.java
+++ b/src/main/java/bjc/inflexion/v2/Nouns.java
@@ -182,18 +182,38 @@ public class Nouns {
private void handleCompound(String actSingular, String actModern, String actClassical, String singularPatt,
String modernPatt, String classicalPatt, List<CompoundNounInflection> inflections) {
+ if(singularPatt.contains("*")) {
+ singularPatt = singularPatt.replaceAll(Pattern.quote("*"), "(?<scratch>\\\\w+)");
+ modernPatt = modernPatt.replaceAll(Pattern.quote("*"), "(?<scratch>\\\\w+)");
+ classicalPatt = classicalPatt.replaceAll(Pattern.quote("*"), "(?<scratch>\\\\w+)");
+
+ actSingular = actSingular.replaceAll(Pattern.quote("*"), "%2\\$s");
+ actModern = actModern.replaceAll(Pattern.quote("*"), "%2\\$s");
+ actClassical = actClassical.replaceAll(Pattern.quote("*"), "%2\\$s");
+
+ handleNonpluralCompound(actSingular, actModern, actClassical, singularPatt, modernPatt,
+ classicalPatt, inflections, true);
+ } else {
+ handleNonpluralCompound(actSingular, actModern, actClassical, singularPatt, modernPatt,
+ classicalPatt, inflections, false);
+ }
+ }
+
+ private void handleNonpluralCompound(String actSingular, String actModern, String actClassical,
+ String singularPatt, String modernPatt, String classicalPatt,
+ List<CompoundNounInflection> inflections, boolean hasScratch) {
actModern = actModern.equals("") ? null : actModern;
actClassical = actClassical.equals("") ? null : actClassical;
CompoundNounInflection singularInflection = new CompoundNounInflection(this, prepositionDB,
- Pattern.compile(singularPatt), actSingular, actModern, actClassical, false, false);
+ Pattern.compile(singularPatt), actSingular, actModern, actClassical, false, hasScratch);
inflections.add(singularInflection);
if(!modernPatt.equals("")) {
CompoundNounInflection modernInflection = new CompoundNounInflection(this, prepositionDB,
Pattern.compile(modernPatt), actSingular, actModern, actClassical, false,
- false);
+ hasScratch);
inflections.add(modernInflection);
}
@@ -201,7 +221,7 @@ public class Nouns {
if(!classicalPatt.equals("")) {
CompoundNounInflection classicalInflection = new CompoundNounInflection(this, prepositionDB,
Pattern.compile(classicalPatt), actSingular, actModern, actClassical, false,
- false);
+ hasScratch);
inflections.add(classicalInflection);
}