From 7a7d1a88427af1e87688ff6dd8637af9c7c1681a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 29 Nov 2016 22:10:12 +0000 Subject: Add parsing for separators --- mammoth/styles/parser/html_path_parser.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'mammoth/styles/parser/html_path_parser.py') diff --git a/mammoth/styles/parser/html_path_parser.py b/mammoth/styles/parser/html_path_parser.py index e8f448e..9e155b6 100644 --- a/mammoth/styles/parser/html_path_parser.py +++ b/mammoth/styles/parser/html_path_parser.py @@ -1,6 +1,6 @@ from ... import html_paths from .tokeniser import TokenType -from .token_parser import parse_identifier, try_parse_class_name +from .token_parser import parse_identifier, parse_string, try_parse_class_name def parse_html_path(tokens): @@ -27,11 +27,13 @@ def _parse_element(tokens): tag_names = _parse_tag_names(tokens) class_names = _parse_class_names(tokens) is_fresh = _parse_is_fresh(tokens) + separator = _parse_separator(tokens) return html_paths.element( tag_names, class_names=class_names, fresh=is_fresh, + separator=separator, ) @@ -62,3 +64,17 @@ def _parse_is_fresh(tokens): (TokenType.SYMBOL, ":"), (TokenType.IDENTIFIER, "fresh"), )) + + +def _parse_separator(tokens): + is_separator = tokens.try_skip_many(( + (TokenType.SYMBOL, ":"), + (TokenType.IDENTIFIER, "separator"), + )) + if is_separator: + tokens.skip(TokenType.SYMBOL, "(") + value = parse_string(tokens) + tokens.skip(TokenType.SYMBOL, ")") + return value + else: + return None -- cgit v1.2.3