From 8259732a0e1d70284adcc6e7ef492603a3d59565 Mon Sep 17 00:00:00 2001 From: bjculkin Date: Wed, 5 Apr 2017 09:55:46 -0400 Subject: More plural fixes --- src/main/java/bjc/inflexion/v2/Nouns.java | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'src/main/java/bjc/inflexion') 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 inflections) { + if(singularPatt.contains("*")) { + singularPatt = singularPatt.replaceAll(Pattern.quote("*"), "(?\\\\w+)"); + modernPatt = modernPatt.replaceAll(Pattern.quote("*"), "(?\\\\w+)"); + classicalPatt = classicalPatt.replaceAll(Pattern.quote("*"), "(?\\\\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 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); } -- cgit v1.2.3