From 406325d3cad205eb010f8936d50337fcb61193d1 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 29 Nov 2016 21:51:15 +0000 Subject: Add parsing for style name prefixes --- mammoth/styles/parser/document_matcher_parser.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'mammoth') 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) -- cgit v1.2.3