From bc8c341b37bfac34bbeaccdd5368c2d7edc309ac Mon Sep 17 00:00:00 2001 From: Bruno Herfst Date: Wed, 26 Oct 2016 11:04:09 +1100 Subject: Add support for page and column breaks --- mammoth/styles/parser/document_matcher_parser.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'mammoth/styles/parser/document_matcher_parser.py') 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)) -- cgit v1.2.3