From 25959ffced5eb4e239610e79f05c1774e54ec29c Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 29 Feb 2016 09:16:54 -0500 Subject: Refactored Pair interface Pair now has a proper functional interface --- .../main/java/bjc/utils/gen/WeightedGrammar.java | 31 ++++++++++++++-------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java') diff --git a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java index de1e7b8..7c3ea6a 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java +++ b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedGrammar.java @@ -247,15 +247,16 @@ public class WeightedGrammar { FunctionalList>> newResults = new FunctionalList<>(); rule.getValues().forEach((par) -> { - FunctionalList nl = par.r.clone(); + FunctionalList nl = par + .merge((left, right) -> right.clone()); nl.prepend(prefixToken); - newResults.add(new Pair<>(par.l + addProb, nl)); + newResults.add(new Pair<>( + par.merge((left, right) -> left) + addProb, nl)); }); - newResults.forEach((par) -> { - addCase(rName, par.l, par.r); - }); + newResults.forEach((par) -> par + .doWith((left, right) -> addCase(rName, left, right))); } /** @@ -281,7 +282,8 @@ public class WeightedGrammar { // TODO bugtest this. if it works, write multiSuffixWith for (int i = 1; i <= nTimes; i++) { - FunctionalList nl = par.r.clone(); + FunctionalList nl = par + .merge((left, right) -> right.clone()); for (int j = 1; j <= i; j++) { nl.prepend(prefixToken); @@ -291,12 +293,15 @@ public class WeightedGrammar { } nls.forEach((ls) -> { - newResults.add(new Pair<>(par.l + addProb, ls)); + newResults.add(new Pair<>( + par.merge((left, right) -> left) + addProb, ls)); }); }); newResults.forEach((par) -> { - addCase(rName, par.l, par.r); + par.doWith((left, right) -> { + addCase(rName, left, right); + }); }); } @@ -363,14 +368,18 @@ public class WeightedGrammar { FunctionalList>> newResults = new FunctionalList<>(); rule.getValues().forEach((par) -> { - FunctionalList nl = par.r.clone(); + FunctionalList nl = par + .merge((left, right) -> right.clone()); nl.add(prefixToken); - newResults.add(new Pair<>(par.l + addProb, nl)); + newResults.add(new Pair<>( + par.merge((left, right) -> left) + addProb, nl)); }); newResults.forEach((par) -> { - addCase(rName, par.l, par.r); + par.doWith((left, right) -> { + addCase(rName, left, right); + }); }); } -- cgit v1.2.3