From fd0a1a0a63818fc1098b01b561c636457c1284ba Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Wed, 11 May 2016 21:11:29 -0400 Subject: Minor changes --- .../bjc/utils/funcutils/CompoundCollector.java | 11 +++------ .../utils/parserutils/RuleBasedConfigReader.java | 28 ++++++++++++---------- .../java/bjc/utils/parserutils/ShuntingYard.java | 13 ++++------ 3 files changed, 23 insertions(+), 29 deletions(-) (limited to 'BJC-Utils2/src/main/java') diff --git a/BJC-Utils2/src/main/java/bjc/utils/funcutils/CompoundCollector.java b/BJC-Utils2/src/main/java/bjc/utils/funcutils/CompoundCollector.java index 715a6e5..ed8d05f 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/funcutils/CompoundCollector.java +++ b/BJC-Utils2/src/main/java/bjc/utils/funcutils/CompoundCollector.java @@ -6,8 +6,6 @@ import java.util.function.BinaryOperator; import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collector; -import java.util.stream.Collector.Characteristics; - import bjc.utils.data.IHolder; import bjc.utils.data.IPair; import bjc.utils.data.Identity; @@ -57,10 +55,8 @@ final class CompoundCollector>> - combiner() { - BinaryOperator firstCombiner = - firstCollector.combiner(); + public BinaryOperator>> combiner() { + BinaryOperator firstCombiner = firstCollector.combiner(); BinaryOperator secondCombiner = secondCollector.combiner(); @@ -82,8 +78,7 @@ final class CompoundCollector { return new Pair<>( firstCollector.finisher().apply(leftVal), - secondCollector.finisher() - .apply(rightVal)); + secondCollector.finisher().apply(rightVal)); }); }); }; diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java index 2b97a79..5d044e1 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java +++ b/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java @@ -8,7 +8,9 @@ import java.util.Scanner; import java.util.function.BiConsumer; import java.util.function.Consumer; +import bjc.utils.data.IHolder; import bjc.utils.data.IPair; +import bjc.utils.data.Identity; import bjc.utils.data.Pair; import bjc.utils.exceptions.UnknownPragmaException; import bjc.utils.funcdata.FunctionalStringTokenizer; @@ -121,30 +123,30 @@ public class RuleBasedConfigReader { E state; - try (Scanner inputSource = new Scanner(inputStream)) { + try (Scanner inputSource = new Scanner(inputStream, "\n")) { state = initialState; - boolean ruleOpen = false; - - while (inputSource.hasNextLine()) { - String line = inputSource.nextLine(); + IHolder ruleOpen = new Identity<>(false); + inputSource.forEachRemaining((line) -> { if (line.startsWith("#") || line.startsWith("//")) { // It's a comment - continue; + return; } else if (line.equals("")) { - ruleOpen = endRule(state, ruleOpen); + ruleOpen.replace(endRule(state, ruleOpen.getValue())); - continue; + return; } else if (line.startsWith("\t")) { - continueRule(state, ruleOpen, line); + continueRule(state, ruleOpen.getValue(), line); } else { - ruleOpen = startRule(state, ruleOpen, line); + ruleOpen.replace( + startRule(state, ruleOpen.getValue(), line)); } - } + }); } return state; + } /** @@ -185,8 +187,8 @@ public class RuleBasedConfigReader { } private boolean startRule(E state, boolean ruleOpen, String line) { - FunctionalStringTokenizer tokenizer = new FunctionalStringTokenizer( - line, " "); + FunctionalStringTokenizer tokenizer = + new FunctionalStringTokenizer(line, " "); String nextToken = tokenizer.nextToken(); diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java index 8118faa..c1cd5c7 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java +++ b/BJC-Utils2/src/main/java/bjc/utils/parserutils/ShuntingYard.java @@ -63,12 +63,11 @@ public class ShuntingYard { } private final class TokenShunter implements Consumer { - private IList output; + private IList output; private Deque stack; private Function transform; - public TokenShunter(IList outpt, - Deque stack, + public TokenShunter(IList outpt, Deque stack, Function transform) { this.output = outpt; this.stack = stack; @@ -176,8 +175,7 @@ public class ShuntingYard { * The function to use to transform strings to tokens * @return A list of tokens in postfix notation */ - public IList postfix( - IList input, + public IList postfix(IList input, Function tokenTransformer) { if (input == null) { throw new NullPointerException("Input must not be null"); @@ -191,9 +189,8 @@ public class ShuntingYard { input.forEach(new TokenShunter(output, stack, tokenTransformer)); - while (!stack.isEmpty()) { - output.add(tokenTransformer.apply(stack.pop())); - } + stack.forEach( + (token) -> output.add(tokenTransformer.apply(token))); return output; } -- cgit v1.2.3