summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedReaderPragmas.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2017-03-25 20:34:42 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2017-03-25 20:34:42 -0400
commitb53c1ef47c438fb1144b961d1939c37a4bfe9120 (patch)
treeeec3e8737831dfa245fdee31fb4b25bffac03aff /BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedReaderPragmas.java
parent9716b1ac09eb92c4ed001be4350d54b41b953239 (diff)
Separate general I/O from parsing.
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedReaderPragmas.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedReaderPragmas.java80
1 files changed, 0 insertions, 80 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedReaderPragmas.java b/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedReaderPragmas.java
deleted file mode 100644
index 65add27..0000000
--- a/BJC-Utils2/src/main/java/bjc/utils/parserutils/RuleBasedReaderPragmas.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package bjc.utils.parserutils;
-
-import bjc.utils.exceptions.PragmaFormatException;
-import bjc.utils.funcdata.FunctionalStringTokenizer;
-import bjc.utils.funcutils.ListUtils;
-
-import java.util.function.BiConsumer;
-
-/**
- * Contains factory methods for common pragma types
- *
- * @author ben
- *
- */
-public class RuleBasedReaderPragmas {
-
- /**
- * Creates a pragma that takes a single integer argument
- *
- * @param <StateType>
- * The type of state that goes along with this pragma
- * @param name
- * The name of this pragma, for error message purpose
- * @param consumer
- * The function to invoke with the parsed integer
- * @return A pragma that functions as described above.
- */
- public static <StateType> BiConsumer<FunctionalStringTokenizer, StateType> buildInteger(String name,
- BiConsumer<Integer, StateType> consumer) {
- return (tokenizer, state) -> {
- // Check our input is correct
- if(!tokenizer.hasMoreTokens())
- throw new PragmaFormatException("Pragma " + name + " requires one integer argument");
-
- // Read the argument
- String token = tokenizer.nextToken();
-
- try {
- // Run the pragma
- consumer.accept(Integer.parseInt(token), state);
- } catch(NumberFormatException nfex) {
- // Tell the user their argument isn't correct
- PragmaFormatException pfex = new PragmaFormatException(
- "Argument " + token + " to " + name + " pragma isn't a valid integer. "
- + "This pragma requires a integer argument");
-
- pfex.initCause(nfex);
-
- throw pfex;
- }
- };
- }
-
- /**
- * Creates a pragma that takes any number of arguments and collapses
- * them all into a single string
- *
- * @param <StateType>
- * The type of state that goes along with this pragma
- * @param name
- * The name of this pragma, for error message purpose
- * @param consumer
- * The function to invoke with the parsed string
- * @return A pragma that functions as described above.
- */
- public static <StateType> BiConsumer<FunctionalStringTokenizer, StateType> buildStringCollapser(String name,
- BiConsumer<String, StateType> consumer) {
- return (tokenizer, state) -> {
- // Check our input
- if(!tokenizer.hasMoreTokens()) throw new PragmaFormatException(
- "Pragma " + name + " requires one or more string arguments");
-
- // Build our argument
- String collapsed = ListUtils.collapseTokens(tokenizer.toList());
-
- // Run the pragma
- consumer.accept(collapsed, state);
- };
- }
-}