aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-23 21:11:52 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-23 21:11:52 +0000
commit059a69620a83e13718ff9388b345ed13a9d19157 (patch)
tree27135b52d345d054185e8b9e7e5c20bc7e4467a2 /src/main/java
parent8a19db72c5def22edb0d2ab97765fc0ebd256b5c (diff)
Parse style map
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/mammoth/styles/parsing/StyleMapParser.java31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/main/java/org/zwobble/mammoth/styles/parsing/StyleMapParser.java b/src/main/java/org/zwobble/mammoth/styles/parsing/StyleMapParser.java
index 618c00b..595eab1 100644
--- a/src/main/java/org/zwobble/mammoth/styles/parsing/StyleMapParser.java
+++ b/src/main/java/org/zwobble/mammoth/styles/parsing/StyleMapParser.java
@@ -4,14 +4,33 @@ import org.parboiled.support.Var;
import org.zwobble.mammoth.styles.StyleMap;
import org.zwobble.mammoth.styles.StyleMapBuilder;
+import java.util.List;
+
+import static java.util.Arrays.asList;
+
public class StyleMapParser {
public static StyleMap parse(String input) {
- if (input.isEmpty()) {
- return StyleMap.EMPTY;
- } else {
- Var<StyleMapBuilder> styleMap = new Var<>(StyleMap.builder());
- Parsing.parse(StyleMappingParser.class, parser -> parser.StyleMapping(styleMap), input);
- return styleMap.get().build();
+ List<String> lines = asList(input.split("\\r?\\n"));
+
+ Var<StyleMapBuilder> styleMap = new Var<>(StyleMap.builder());
+ for (String line : lines) {
+ handleLine(styleMap, line);
}
+ return styleMap.get().build();
+ }
+
+ private static void handleLine(Var<StyleMapBuilder> styleMap, String line) {
+ if (line.startsWith("#")) {
+ return;
+ }
+ line = line.trim();
+ if (line.isEmpty()) {
+ return;
+ }
+ Parsing.parse(StyleMappingParser.class, parser -> parser.StyleMapping(styleMap), line);
+ }
+
+ private static boolean isSignificantLine(String line) {
+ return !line.startsWith("#") && !line.trim().isEmpty();
}
}