Ignore:
Timestamp:
04/16/06 19:45:21 (9 years ago)
Author:
xi
Message:

Refactor resolver.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pyyaml/trunk/lib/yaml/parser.py

    r136 r137  
    267267            event = None 
    268268            collection_events = None 
     269            implicit = (tag is None or tag == u'!') 
    269270            if indentless_sequence and self.check_token(BlockEntryToken): 
    270271                end_mark = self.peek_token().end_mark 
    271                 event = SequenceStartEvent(anchor, tag, start_mark, end_mark) 
     272                event = SequenceStartEvent(anchor, tag, implicit, 
     273                        start_mark, end_mark) 
    272274                collection_events = self.parse_indentless_sequence() 
    273275            else: 
     
    275277                    token = self.get_token() 
    276278                    end_mark = token.end_mark 
    277                     implicit = ((tag is None or tag == u'!') and token.implicit) 
     279                    if (token.plain and tag is None) or tag == u'!': 
     280                        implicit = (True, False) 
     281                    elif tag is None: 
     282                        implicit = (False, True) 
     283                    else: 
     284                        implicit = (False, False) 
    278285                    event = ScalarEvent(anchor, tag, implicit, token.value, 
    279286                            start_mark, end_mark, style=token.style) 
    280287                elif self.check_token(FlowSequenceStartToken): 
    281288                    end_mark = self.peek_token().end_mark 
    282                     event = SequenceStartEvent(anchor, tag, start_mark, end_mark, 
    283                             flow_style=True) 
     289                    event = SequenceStartEvent(anchor, tag, implicit, 
     290                            start_mark, end_mark, flow_style=True) 
    284291                    collection_events = self.parse_flow_sequence() 
    285292                elif self.check_token(FlowMappingStartToken): 
    286293                    end_mark = self.peek_token().end_mark 
    287                     event = MappingStartEvent(anchor, tag, start_mark, end_mark, 
    288                             flow_style=True) 
     294                    event = MappingStartEvent(anchor, tag, implicit, 
     295                            start_mark, end_mark, flow_style=True) 
    289296                    collection_events = self.parse_flow_mapping() 
    290297                elif block and self.check_token(BlockSequenceStartToken): 
    291298                    end_mark = self.peek_token().start_mark 
    292                     event = SequenceStartEvent(anchor, tag, start_mark, end_mark, 
    293                             flow_style=False) 
     299                    event = SequenceStartEvent(anchor, tag, implicit, 
     300                            start_mark, end_mark, flow_style=False) 
    294301                    collection_events = self.parse_block_sequence() 
    295302                elif block and self.check_token(BlockMappingStartToken): 
    296303                    end_mark = self.peek_token().start_mark 
    297                     event = MappingStartEvent(anchor, tag, start_mark, end_mark, 
    298                             flow_style=False) 
     304                    event = MappingStartEvent(anchor, tag, implicit, 
     305                            start_mark, end_mark, flow_style=False) 
    299306                    collection_events = self.parse_block_mapping() 
    300307                elif anchor is not None or tag is not None: 
    301308                    # Empty scalars are allowed even if a tag or an anchor is 
    302309                    # specified. 
    303                     implicit = (tag is None or tag == u'!') 
    304                     event = ScalarEvent(anchor, tag, implicit, u'', 
     310                    event = ScalarEvent(anchor, tag, (implicit, False), u'', 
    305311                            start_mark, end_mark) 
    306312                else: 
     
    397403            if self.check_token(KeyToken): 
    398404                token = self.get_token() 
    399                 yield MappingStartEvent(None, None, # u'!', 
     405                yield MappingStartEvent(None, None, True, 
    400406                        token.start_mark, token.end_mark, 
    401407                        flow_style=True) 
     
    475481 
    476482    def process_empty_scalar(self, mark): 
    477         return ScalarEvent(None, None, True, u'', mark, mark) 
    478  
     483        return ScalarEvent(None, None, (True, False), u'', mark, mark) 
     484 
Note: See TracChangeset for help on using the changeset viewer.