From 8b2c78422a26f40f47ac2f2ccfe57d30991ae9d3 Mon Sep 17 00:00:00 2001 From: Chris Jerdonek Date: Sat, 5 May 2012 08:35:32 -0700 Subject: More parser simplifications. --- pystache/parser.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'pystache/parser.py') diff --git a/pystache/parser.py b/pystache/parser.py index 446ceb8..3230058 100644 --- a/pystache/parser.py +++ b/pystache/parser.py @@ -142,30 +142,27 @@ class Parser(object): match_index += len(leading_whitespace) leading_whitespace = '' + start_index = end_index + if tag_type in ('#', '^'): # Cache current state. - state = (tag_type, tag_key, leading_whitespace, end_index, section_key, parsed_template) + state = (tag_type, tag_key, end_index, section_key, parsed_template) states.append(state) # Initialize new state - start_index, section_key = end_index, tag_key - parsed_template = ParsedTemplate() - content_end_index, parsed_section = None, None - + section_key, parsed_template = tag_key, ParsedTemplate() continue - start_index = end_index - if tag_type == '/': if tag_key != section_key: raise ParsingError("Section end tag mismatch: %s != %s" % (tag_key, section_key)) # Restore previous state with newly found section data. - content_end_index, parsed_section = match_index, parsed_template + parsed_section = parsed_template - (tag_type, tag_key, leading_whitespace, end_index, section_key, parsed_template) = states.pop() + (tag_type, tag_key, end_index, section_key, parsed_template) = states.pop() node = self._make_section_node(template, tag_type, tag_key, parsed_section, - end_index, content_end_index) + end_index, match_index) else: node = self._make_interpolation_node(tag_type, tag_key, leading_whitespace) -- cgit v1.2.1