aboutsummaryrefslogtreecommitdiff
path: root/mammoth
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-11-29 21:51:15 +0000
committerMichael Williamson <mike@zwobble.org>2016-11-29 21:51:15 +0000
commit406325d3cad205eb010f8936d50337fcb61193d1 (patch)
tree8c86178519200975a7053f477b64fc27b0e129a8 /mammoth
parentf6e7dac51adf4283c60df7ddc1500dd5e3215852 (diff)
Add parsing for style name prefixes
Diffstat (limited to 'mammoth')
-rw-r--r--mammoth/styles/parser/document_matcher_parser.py14
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)