aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/styles/parsing/DocumentMatcherParser.java20
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/styles/parsing/TokenParser.java6
2 files changed, 25 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/DocumentMatcherParser.java b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/DocumentMatcherParser.java
index 7615e65..7586393 100644
--- a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/DocumentMatcherParser.java
+++ b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/DocumentMatcherParser.java
@@ -27,6 +27,9 @@ public class DocumentMatcherParser {
return StyleMapBuilder::strikethrough;
case "comment-reference":
return StyleMapBuilder::commentReference;
+ case "br":
+ BreakMatcher breakMatcher = parseBreakMatcher(tokens);
+ return (builder, path) -> builder.mapBreak(breakMatcher, path);
default:
throw new LineParseException(identifier, "Unrecognised document element: " + identifier);
}
@@ -93,4 +96,21 @@ public class DocumentMatcherParser {
throw new LineParseException(listType, "Unrecognised list type: " + listType);
}
}
+
+ private static BreakMatcher parseBreakMatcher(TokenIterator<TokenType> tokens) {
+ tokens.skip(TokenType.SYMBOL, "[");
+ tokens.skip(TokenType.IDENTIFIER, "type");
+ tokens.skip(TokenType.SYMBOL, "=");
+ Token<TokenType> stringToken = tokens.next(TokenType.STRING);
+ tokens.skip(TokenType.SYMBOL, "]");
+ String typeName = TokenParser.parseStringToken(stringToken);
+ switch (typeName) {
+ case "line":
+ return BreakMatcher.LINE_BREAK;
+ case "page":
+ return BreakMatcher.PAGE_BREAK;
+ default:
+ throw new LineParseException(stringToken, "Unrecognised break type: " + typeName);
+ }
+ }
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/TokenParser.java b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/TokenParser.java
index 1131da5..78052eb 100644
--- a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/TokenParser.java
+++ b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/TokenParser.java
@@ -16,7 +16,11 @@ public class TokenParser {
}
public static String parseString(TokenIterator<TokenType> tokens) {
- String value = tokens.nextValue(TokenType.STRING);
+ return parseStringToken(tokens.next(TokenType.STRING));
+ }
+
+ static String parseStringToken(Token<TokenType> token) {
+ String value = token.getValue();
return EscapeSequences.decode(value.substring(1, value.length() - 1));
}
}