diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-29 21:51:15 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-29 21:51:15 +0000 |
| commit | 406325d3cad205eb010f8936d50337fcb61193d1 (patch) | |
| tree | 8c86178519200975a7053f477b64fc27b0e129a8 /mammoth/styles/parser | |
| parent | f6e7dac51adf4283c60df7ddc1500dd5e3215852 (diff) | |
Add parsing for style name prefixes
Diffstat (limited to 'mammoth/styles/parser')
| -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) |
