aboutsummaryrefslogtreecommitdiff
path: root/mammoth/styles/parser
diff options
context:
space:
mode:
Diffstat (limited to 'mammoth/styles/parser')
-rw-r--r--mammoth/styles/parser/document_matcher_parser.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/mammoth/styles/parser/document_matcher_parser.py b/mammoth/styles/parser/document_matcher_parser.py
index 7f117b7..36999d0 100644
--- a/mammoth/styles/parser/document_matcher_parser.py
+++ b/mammoth/styles/parser/document_matcher_parser.py
@@ -40,6 +40,9 @@ def parse_document_matcher(tokens):
elif tokens.try_skip(TokenType.IDENTIFIER, "comment-reference"):
return document_matchers.comment_reference
+ elif tokens.try_skip(TokenType.IDENTIFIER, "br"):
+ return _parse_break(tokens)
+
else:
raise LineParseError("Unrecognised document element: {0}".format(tokens.next_value(TokenType.IDENTIFIER)))
@@ -78,3 +81,20 @@ def _parse_list_type(tokens):
return False
else:
raise LineParseError("Unrecognised list type: {0}".format(list_type))
+
+
+def _parse_break(tokens):
+ tokens.skip(TokenType.SYMBOL, "[")
+ tokens.skip(TokenType.IDENTIFIER, "type")
+ tokens.skip(TokenType.SYMBOL, "=")
+ type_name = parse_string(tokens)
+ tokens.skip(TokenType.SYMBOL, "]");
+
+ if type_name == "line":
+ return document_matchers.line_break
+ elif type_name == "page":
+ return document_matchers.page_break
+ elif type_name == "column":
+ return document_matchers.column_break
+ else:
+ raise LineParseError("Unrecognised break type: {0}".format(type_name))