Ignore:
Timestamp:
02/15/06 16:57:37 (9 years ago)
Author:
xi
Message:

Stream and Marker are cleaned up.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/pyyaml3000/lib/yaml/scanner.py

    r44 r45  
    125125        # Stream supports the following methods 
    126126        #   self.stream.peek(k=1)   # peek the next k characters 
    127         #   self.stream.read(k=1)   # read the next k characters and move the 
     127        #   self.stream.forward(k=1)   # read the next k characters and move the 
    128128        #                           # pointer 
    129129        self.stream = Stream(source, data) 
     
    443443        # Add DOCUMENT-START or DOCUMENT-END. 
    444444        start_marker = self.stream.get_marker() 
    445         self.stream.read(3) 
     445        self.stream.forward(3) 
    446446        end_marker = self.stream.get_marker() 
    447447        self.tokens.append(TokenClass(start_marker, end_marker)) 
     
    466466        # Add FLOW-SEQUENCE-START or FLOW-MAPPING-START. 
    467467        start_marker = self.stream.get_marker() 
    468         self.stream.read() 
     468        self.stream.forward() 
    469469        end_marker = self.stream.get_marker() 
    470470        self.tokens.append(TokenClass(start_marker, end_marker)) 
     
    489489        # Add FLOW-SEQUENCE-END or FLOW-MAPPING-END. 
    490490        start_marker = self.stream.get_marker() 
    491         self.stream.read() 
     491        self.stream.forward() 
    492492        end_marker = self.stream.get_marker() 
    493493        self.tokens.append(TokenClass(start_marker, end_marker)) 
     
    515515        # Add ENTRY. 
    516516        start_marker = self.stream.get_marker() 
    517         self.stream.read() 
     517        self.stream.forward() 
    518518        end_marker = self.stream.get_marker() 
    519519        self.tokens.append(EntryToken(start_marker, end_marker)) 
     
    541541        # Add KEY. 
    542542        start_marker = self.stream.get_marker() 
    543         self.stream.read() 
     543        self.stream.forward() 
    544544        end_marker = self.stream.get_marker() 
    545545        self.tokens.append(KeyToken(start_marker, end_marker)) 
     
    577577        # Add VALUE. 
    578578        start_marker = self.stream.get_marker() 
    579         self.stream.read() 
     579        self.stream.forward() 
    580580        end_marker = self.stream.get_marker() 
    581581        self.tokens.append(ValueToken(start_marker, end_marker)) 
     
    728728        while not found: 
    729729            while self.stream.peek() == u' ': 
    730                 self.stream.read() 
     730                self.stream.forward() 
    731731            if self.stream.peek() == u'#': 
    732732                while self.stream.peek() not in u'\r\n': 
    733                     self.stream.read() 
     733                    self.stream.forward() 
    734734            if self.stream.peek() in u'\r\n': 
    735                 self.stream.read() 
     735                self.stream.forward() 
    736736                if not self.flow_level: 
    737737                    self.allow_simple_key = True 
     
    748748            self.tokens.append(ReservedDirectiveToken('', marker, marker)) 
    749749        while self.stream.peek() not in u'\0\r\n': 
    750             self.stream.read() 
    751         self.stream.read() 
     750            self.stream.forward() 
     751        self.stream.forward() 
    752752 
    753753    def scan_anchor(self, TokenClass): 
    754754        start_marker = self.stream.get_marker() 
    755755        while self.stream.peek() not in u'\0 \t\r\n,:': 
    756             self.stream.read() 
     756            self.stream.forward() 
    757757        end_marker = self.stream.get_marker() 
    758758        self.tokens.append(TokenClass('', start_marker, end_marker)) 
     
    761761        start_marker = self.stream.get_marker() 
    762762        while self.stream.peek() not in u'\0 \t\r\n': 
    763             self.stream.read() 
     763            self.stream.forward() 
    764764        end_marker = self.stream.get_marker() 
    765765        self.tokens.append(TagToken('', start_marker, end_marker)) 
     
    772772        while True: 
    773773            while self.stream.peek() and self.stream.peek() and self.stream.peek() not in u'\0\r\n\x85\u2028\u2029': 
    774                 self.stream.read() 
     774                self.stream.forward() 
    775775            if self.stream.peek() != u'\0': 
    776                 self.stream.read() 
     776                self.stream.forward() 
    777777            count = 0 
    778778            while count < indent and self.stream.peek() == u' ': 
    779                 self.stream.read() 
     779                self.stream.forward() 
    780780                count += 1 
    781781            if count < indent and self.stream.peek() not in u'#\r\n\x85\u2028\u2029': 
     
    785785    def scan_flow_scalar(self, double): 
    786786        marker = self.stream.get_marker() 
    787         quote = self.stream.read() 
     787        quote = self.stream.peek() 
     788        self.stream.forward() 
    788789        while self.stream.peek() != quote: 
    789790            if double and self.stream.peek() == u'\\': 
    790                 self.stream.read(2) 
     791                self.stream.forward(2) 
    791792            elif not double and self.stream.peek(3)[1:] == u'\'\'': 
    792                 self.stream.read(3) 
     793                self.stream.forward(3) 
    793794            else: 
    794                 self.stream.read(1) 
    795         self.stream.read(1) 
     795                self.stream.forward(1) 
     796        self.stream.forward(1) 
    796797        self.tokens.append(ScalarToken('', False, marker, marker)) 
    797798 
     
    804805        while True: 
    805806            while self.stream.peek() == u' ': 
    806                 self.stream.read() 
     807                self.stream.forward() 
    807808                space = True 
    808809            while self.stream.peek() not in u'\0\r\n?:,[]{}#'   \ 
     
    811812                    or (not self.flow_level and self.stream.peek() == ':' and self.stream.peek(2)[1] not in u' \0\r\n'): 
    812813                space = self.stream.peek() not in u' \t' 
    813                 self.stream.read() 
     814                self.stream.forward() 
    814815                self.allow_simple_key = False 
    815816            if self.stream.peek() not in u'\r\n': 
    816817                break 
    817818            while self.stream.peek() in u'\r\n': 
    818                 self.stream.read() 
     819                self.stream.forward() 
    819820                if not self.flow_level: 
    820821                    self.allow_simple_key = True 
    821822            count = 0 
    822823            while self.stream.peek() == u' ' and count < indent: 
    823                 self.stream.read() 
     824                self.stream.forward() 
    824825                count += 1 
    825826            if count < indent: 
     
    834835        raise ScannerError(message) 
    835836 
     837#try: 
     838#    import psyco 
     839#    psyco.bind(Scanner) 
     840#except ImportError: 
     841#    pass 
     842 
Note: See TracChangeset for help on using the changeset viewer.