From 059a69620a83e13718ff9388b345ed13a9d19157 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 23 Feb 2016 21:11:52 +0000 Subject: Parse style map --- .../mammoth/styles/parsing/StyleMapParser.java | 31 +++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) (limited to 'src/main/java/org') 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 styleMap = new Var<>(StyleMap.builder()); - Parsing.parse(StyleMappingParser.class, parser -> parser.StyleMapping(styleMap), input); - return styleMap.get().build(); + List lines = asList(input.split("\\r?\\n")); + + Var styleMap = new Var<>(StyleMap.builder()); + for (String line : lines) { + handleLine(styleMap, line); } + return styleMap.get().build(); + } + + private static void handleLine(Var 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(); } } -- cgit v1.2.3