aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
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();
}
}