diff options
Diffstat (limited to 'mammoth/styles/parser/document_matcher_parser.py')
| -rw-r--r-- | mammoth/styles/parser/document_matcher_parser.py | 20 |
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)) |
