Ignore:
Timestamp:
04/03/06 14:20:25 (9 years ago)
Author:
xi
Message:

Add style information to events generated by Parser.

File:
1 edited

Legend:

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

    r118 r130  
    380380        mark = self.reader.get_mark() 
    381381         
    382         # Add STREAM-END. 
    383         self.tokens.append(StreamStartToken(mark, mark)) 
     382        # Add STREAM-START. 
     383        self.tokens.append(StreamStartToken(mark, mark, 
     384            encoding=self.reader.encoding)) 
    384385         
    385386 
     
    639640 
    640641    def fetch_literal(self): 
    641         self.fetch_block_scalar(folded=False) 
     642        self.fetch_block_scalar(style='|') 
    642643 
    643644    def fetch_folded(self): 
    644         self.fetch_block_scalar(folded=True) 
    645  
    646     def fetch_block_scalar(self, folded): 
     645        self.fetch_block_scalar(style='>') 
     646 
     647    def fetch_block_scalar(self, style): 
    647648 
    648649        # A simple key may follow a block scalar. 
     
    653654 
    654655        # Scan and add SCALAR. 
    655         self.tokens.append(self.scan_block_scalar(folded)) 
     656        self.tokens.append(self.scan_block_scalar(style)) 
    656657 
    657658    def fetch_single(self): 
    658         self.fetch_flow_scalar(double=False) 
     659        self.fetch_flow_scalar(style='\'') 
    659660 
    660661    def fetch_double(self): 
    661         self.fetch_flow_scalar(double=True) 
    662  
    663     def fetch_flow_scalar(self, double): 
     662        self.fetch_flow_scalar(style='"') 
     663 
     664    def fetch_flow_scalar(self, style): 
    664665 
    665666        # A flow scalar could be a simple key. 
     
    670671 
    671672        # Scan and add SCALAR. 
    672         self.tokens.append(self.scan_flow_scalar(double)) 
     673        self.tokens.append(self.scan_flow_scalar(style)) 
    673674 
    674675    def fetch_plain(self): 
     
    987988        return TagToken(value, start_mark, end_mark) 
    988989 
    989     def scan_block_scalar(self, folded): 
    990         # See the specification for details. 
     990    def scan_block_scalar(self, style): 
     991        # See the specification for details. 
     992 
     993        if style == '>': 
     994            folded = True 
     995        else: 
     996            folded = False 
    991997 
    992998        chunks = [] 
     
    10221028            breaks, end_mark = self.scan_block_scalar_breaks(indent) 
    10231029            if self.reader.column == indent and self.reader.peek() != u'\0': 
     1030 
    10241031                # Unfortunately, folding rules are ambiguous. 
    10251032                # 
     
    10541061 
    10551062        # We are done. 
    1056         return ScalarToken(u''.join(chunks), False, start_mark, end_mark) 
     1063        return ScalarToken(u''.join(chunks), False, start_mark, end_mark, 
     1064                style) 
    10571065 
    10581066    def scan_block_scalar_indicators(self, start_mark): 
     
    11381146        return chunks, end_mark 
    11391147 
    1140     def scan_flow_scalar(self, double): 
     1148    def scan_flow_scalar(self, style): 
    11411149        # See the specification for details. 
    11421150        # Note that we loose indentation rules for quoted scalars. Quoted 
     
    11451153        # restrictive then the specification requires. We only need to check 
    11461154        # that document separators are not included in scalars. 
     1155        if style == '"': 
     1156            double = True 
     1157        else: 
     1158            double = False 
    11471159        chunks = [] 
    11481160        start_mark = self.reader.get_mark() 
     
    11551167        self.reader.forward() 
    11561168        end_mark = self.reader.get_mark() 
    1157         return ScalarToken(u''.join(chunks), False, start_mark, end_mark) 
     1169        return ScalarToken(u''.join(chunks), False, start_mark, end_mark, 
     1170                style) 
    11581171 
    11591172    ESCAPE_REPLACEMENTS = { 
Note: See TracChangeset for help on using the changeset viewer.