source: branches/pyyaml3000/lib/yaml/stream.py @ 44

Revision 44, 813 bytes checked in by xi, 9 years ago (diff)

All tests passed! Scanner and Parser seem to be correct.

RevLine 
[43]1
2from marker import Marker
3
4class Stream:
5
6    def __init__(self, source, data):
7        self.source = source
8        self.data = unicode(data, 'utf-8')+u'\0'
9        self.index = 0
10        self.line = 0
11        self.column = 0
12
13    def peek(self, k=1):
14        return self.data[self.index:self.index+k]
15
16    def read(self, k=1):
17        value = self.data[self.index:self.index+k]
18        for i in range(k):
19            if self.index >= len(self.data):
20                break
[44]21            if self.data[self.index] in u'\r\n\x85\u2028\u2029':
[43]22                self.line += 1
23                self.column = 0
24            else:
25                self.column += 1
26            self.index += 1
27        return value
28
29    def get_marker(self):
30        return Marker(self.source, self.data, self.index, self.line, self.column)
31
Note: See TracBrowser for help on using the repository browser.