             }()
         }
 
-        func peekASCII(input: Index) -> UInt8? {
+        func takeASCII(input: Index) -> (UInt8, Index)? {
             guard hasNext(input) else {
                 return nil
             }

            default:
                return nil
            }
            return (buffer[index] < 0x80) ? buffer[index] : nil
        }

        func takeASCII(input: Index) -> (UInt8, Index)? {
            if let ascii = peekASCII(input) {
                return (ascii, input + step)
            }
            return nil
        }

        func takeString(begin: Index, end: Index) throws -> String {

                    ])
                }
            default:
                currentIndex = index
            }
        }
        throw NSError(domain: NSCocoaErrorDomain, code: NSCocoaError.PropertyListReadCorruptError.rawValue, userInfo: [
