     return currentIndex < lineEndIndex ? _codeUnits[currentIndex] : nil
   }
 
-  func next() -> UInt8? {
+  mutating func next() -> UInt8? {
     var r: UInt8?
     if currentIndex < lineEndIndex {
       r = _codeUnits[currentIndex]

  }

  func clone() -> CodeUnitStream {
    let o = CodeUnitStream(codeUnits: _codeUnits, startIndex: startIndex,
        lineEndIndex: lineEndIndex)
    o.currentIndex = currentIndex
    return o
  }

  func eatString(string: String) -> Bool {
    return matchString(string, consume: true) >= 0
  }

  func matchString(string: String, consume: Bool = false) -> Int {
    var r = -1
    let i = currentIndex
    let savei = i

    return r
  }

  mutating func eatInEscapedQuotes(qc: UInt8) -> Bool {
    return matchInEscapedQuotes(qc, consume: true) >= 0
  }

  mutating func matchInEscapedQuotes(qc: UInt8, consume: Bool = false) -> Int {
    var r = -1
    var i = currentIndex
    if qc == _codeUnits[i] {
