diff options
Diffstat (limited to 'mammoth/styles/parser/document_matcher_parser.py')
| -rw-r--r-- | mammoth/styles/parser/document_matcher_parser.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/mammoth/styles/parser/document_matcher_parser.py b/mammoth/styles/parser/document_matcher_parser.py index 95f3359..0024ac8 100644 --- a/mammoth/styles/parser/document_matcher_parser.py +++ b/mammoth/styles/parser/document_matcher_parser.py @@ -46,14 +46,22 @@ def parse_document_matcher(tokens): def _parse_style_name(tokens): if tokens.try_skip(TokenType.SYMBOL, "["): tokens.skip(TokenType.IDENTIFIER, "style-name") - tokens.skip(TokenType.SYMBOL, "=") - name = parse_string(tokens) + string_matcher = _parse_string_matcher(tokens) tokens.skip(TokenType.SYMBOL, "]") - return document_matchers.equal_to(name) + return string_matcher else: return None +def _parse_string_matcher(tokens): + if tokens.try_skip(TokenType.SYMBOL, "="): + return document_matchers.equal_to(parse_string(tokens)) + elif tokens.try_skip(TokenType.SYMBOL, "^="): + return document_matchers.starts_with(parse_string(tokens)) + else: + # TODO raise + pass + def _parse_numbering(tokens): if tokens.try_skip(TokenType.SYMBOL, ":"): is_ordered = _parse_list_type(tokens) |
