anchor.diff:    String _parseNumber() {
       String number = "";
   
  -    String character = _json[_index];
  -    while(_numberCharacters.contains(character)) {
  -      number += character;
  -      _index++;
  -      if (_index == _json.length) {
  -        break;
  -      }
  -      character = _json[_index];
  +    while(_numberCharacters.contains(_peekCharacter())) {
  +      number += _consumeCharacter();
  +//      if (_index == _json.length) {
  +//        break;
  +//      }
       }
       return number;
     }
   
     String _parseString() {
  -    _index++;
  +    _consumeCharacter(); //We don't care about the starting quotation mark
       String string = "";
  -    String character = _json[_index];
  +    String character = _consumeCharacter();
       while (character != '"') {
         if (character == r"\") {
           string += _parseEscapedStringFragment();
         } else {
           string += character;
  -        _index++;
         }
         if (_index == _json.length) {
           throw new LexerException("Invalid json fragment encountered: $string");
         }
  -      character = _json[_index];
  -    }
  -    _index++;
  +      character = _consumeCharacter();
  +    }
       return string;
     }
   
     String _parseEscapedStringFragment() {
  -    _index++;
  -    String character = _json[_index];
  -    _index++;
  +    String character = _consumeCharacter();
       switch (character) {
         case '"':
         case r'\':
  
positive.code:       case 'u':
          int remainingLength = _json.length - _index;
          if (remainingLength >= 4) {
            var hexString = _json.substring(_index, _index + 4);
            _index += 4;
            var hexInt = int.parse(hexString, radix: 16);
            return UTF8.decode([hexInt]);
          }
  
negative.code:   }
  
    String _parseBool() {
      String fragment = _consumeCharacters(4);
      if (fragment == "true") {
        return "true";
      } else if (fragment == "fals" && _consumeCharacter() == "e") {
        return "false";
      }
      throw new LexerException("Invalid json fragment encountered: $fragment");
    }
  
    String _parseNull() {
      String fragment = _consumeCharacters(4);
      if (fragment == "null") {
        return "null";
      }
      throw new LexerException("Invalid json fragment encountered: $fragment");
    }
  }