Index: branches/pyyaml3000/lib/yaml/scanner.py
===================================================================
--- branches/pyyaml3000/lib/yaml/scanner.py	(revision 44)
+++ branches/pyyaml3000/lib/yaml/scanner.py	(revision 45)
@@ -125,5 +125,5 @@
         # Stream supports the following methods
         #   self.stream.peek(k=1)   # peek the next k characters
-        #   self.stream.read(k=1)   # read the next k characters and move the
+        #   self.stream.forward(k=1)   # read the next k characters and move the
         #                           # pointer
         self.stream = Stream(source, data)
@@ -443,5 +443,5 @@
         # Add DOCUMENT-START or DOCUMENT-END.
         start_marker = self.stream.get_marker()
-        self.stream.read(3)
+        self.stream.forward(3)
         end_marker = self.stream.get_marker()
         self.tokens.append(TokenClass(start_marker, end_marker))
@@ -466,5 +466,5 @@
         # Add FLOW-SEQUENCE-START or FLOW-MAPPING-START.
         start_marker = self.stream.get_marker()
-        self.stream.read()
+        self.stream.forward()
         end_marker = self.stream.get_marker()
         self.tokens.append(TokenClass(start_marker, end_marker))
@@ -489,5 +489,5 @@
         # Add FLOW-SEQUENCE-END or FLOW-MAPPING-END.
         start_marker = self.stream.get_marker()
-        self.stream.read()
+        self.stream.forward()
         end_marker = self.stream.get_marker()
         self.tokens.append(TokenClass(start_marker, end_marker))
@@ -515,5 +515,5 @@
         # Add ENTRY.
         start_marker = self.stream.get_marker()
-        self.stream.read()
+        self.stream.forward()
         end_marker = self.stream.get_marker()
         self.tokens.append(EntryToken(start_marker, end_marker))
@@ -541,5 +541,5 @@
         # Add KEY.
         start_marker = self.stream.get_marker()
-        self.stream.read()
+        self.stream.forward()
         end_marker = self.stream.get_marker()
         self.tokens.append(KeyToken(start_marker, end_marker))
@@ -577,5 +577,5 @@
         # Add VALUE.
         start_marker = self.stream.get_marker()
-        self.stream.read()
+        self.stream.forward()
         end_marker = self.stream.get_marker()
         self.tokens.append(ValueToken(start_marker, end_marker))
@@ -728,10 +728,10 @@
         while not found:
             while self.stream.peek() == u' ':
-                self.stream.read()
+                self.stream.forward()
             if self.stream.peek() == u'#':
                 while self.stream.peek() not in u'\r\n':
-                    self.stream.read()
+                    self.stream.forward()
             if self.stream.peek() in u'\r\n':
-                self.stream.read()
+                self.stream.forward()
                 if not self.flow_level:
                     self.allow_simple_key = True
@@ -748,11 +748,11 @@
             self.tokens.append(ReservedDirectiveToken('', marker, marker))
         while self.stream.peek() not in u'\0\r\n':
-            self.stream.read()
-        self.stream.read()
+            self.stream.forward()
+        self.stream.forward()
 
     def scan_anchor(self, TokenClass):
         start_marker = self.stream.get_marker()
         while self.stream.peek() not in u'\0 \t\r\n,:':
-            self.stream.read()
+            self.stream.forward()
         end_marker = self.stream.get_marker()
         self.tokens.append(TokenClass('', start_marker, end_marker))
@@ -761,5 +761,5 @@
         start_marker = self.stream.get_marker()
         while self.stream.peek() not in u'\0 \t\r\n':
-            self.stream.read()
+            self.stream.forward()
         end_marker = self.stream.get_marker()
         self.tokens.append(TagToken('', start_marker, end_marker))
@@ -772,10 +772,10 @@
         while True:
             while self.stream.peek() and self.stream.peek() and self.stream.peek() not in u'\0\r\n\x85\u2028\u2029':
-                self.stream.read()
+                self.stream.forward()
             if self.stream.peek() != u'\0':
-                self.stream.read()
+                self.stream.forward()
             count = 0
             while count < indent and self.stream.peek() == u' ':
-                self.stream.read()
+                self.stream.forward()
                 count += 1
             if count < indent and self.stream.peek() not in u'#\r\n\x85\u2028\u2029':
@@ -785,13 +785,14 @@
     def scan_flow_scalar(self, double):
         marker = self.stream.get_marker()
-        quote = self.stream.read()
+        quote = self.stream.peek()
+        self.stream.forward()
         while self.stream.peek() != quote:
             if double and self.stream.peek() == u'\\':
-                self.stream.read(2)
+                self.stream.forward(2)
             elif not double and self.stream.peek(3)[1:] == u'\'\'':
-                self.stream.read(3)
+                self.stream.forward(3)
             else:
-                self.stream.read(1)
-        self.stream.read(1)
+                self.stream.forward(1)
+        self.stream.forward(1)
         self.tokens.append(ScalarToken('', False, marker, marker))
 
@@ -804,5 +805,5 @@
         while True:
             while self.stream.peek() == u' ':
-                self.stream.read()
+                self.stream.forward()
                 space = True
             while self.stream.peek() not in u'\0\r\n?:,[]{}#'   \
@@ -811,15 +812,15 @@
                     or (not self.flow_level and self.stream.peek() == ':' and self.stream.peek(2)[1] not in u' \0\r\n'):
                 space = self.stream.peek() not in u' \t'
-                self.stream.read()
+                self.stream.forward()
                 self.allow_simple_key = False
             if self.stream.peek() not in u'\r\n':
                 break
             while self.stream.peek() in u'\r\n':
-                self.stream.read()
+                self.stream.forward()
                 if not self.flow_level:
                     self.allow_simple_key = True
             count = 0
             while self.stream.peek() == u' ' and count < indent:
-                self.stream.read()
+                self.stream.forward()
                 count += 1
             if count < indent:
@@ -834,2 +835,8 @@
         raise ScannerError(message)
 
+#try:
+#    import psyco
+#    psyco.bind(Scanner)
+#except ImportError:
+#    pass
+
