summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-05-11 21:11:29 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-05-11 21:11:29 -0400
commitfd0a1a0a63818fc1098b01b561c636457c1284ba (patch)
treeb7800a87dba99b8a26c3e101cd3c0b71351c70da /BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java
parentfff6dc5d43539af05ae2679640240b8545b36947 (diff)
Minor changes
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedConfigReader.java28
1 files changed, 15 insertions, 13 deletions
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> {
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<Boolean> 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<E> {
}
private boolean startRule(E state, boolean ruleOpen, String line) {
- FunctionalStringTokenizer tokenizer = new FunctionalStringTokenizer(
- line, " ");
+ FunctionalStringTokenizer tokenizer =
+ new FunctionalStringTokenizer(line, " ");
String nextToken = tokenizer.nextToken();