diff options
| author | Bruno Herfst <hello@brunoherfst.com> | 2016-10-26 11:04:09 +1100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-12-10 23:07:48 +0000 |
| commit | bc8c341b37bfac34bbeaccdd5368c2d7edc309ac (patch) | |
| tree | 5c18d634763f5f6ae0defeb07368f0ae28d8ef4d /mammoth/styles/parser/document_matcher_parser.py | |
| parent | 8661cad2a82b66254fff564f4a514cbd67ad371d (diff) | |
Add support for page and column breaks
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)) |
