anchor.diff:        }
         char = _source.codeUnitAt(position);
         if (char == QUOTE) {
  -        _listener.handleString(new Span(start - 1, position + 1), _source.substring(start, position));
  +        _listener.handleString(
  +            new Span(start - 1, position + 1),
  +            _source.substring(start, position));
           return position + 1;
         }
         if (char < SPACE) {
  
positive.code:   int _parseTrue(int position) {
      assert(_source.codeUnitAt(position) == CHAR_t);
      if (_source.length < position + 4) _fail(position, "Unexpected identifier");
      if (_source.codeUnitAt(position + 1) != CHAR_r || _source.codeUnitAt(position + 2) != CHAR_u || _source.codeUnitAt(position + 3) != CHAR_e) {
        _fail(position);
      }
      _listener.handleBool(new Span(position, position + 4), true);
  
negative.code:   int _parseNull(int position) {
      assert(_source.codeUnitAt(position) == CHAR_n);
      if (_source.length < position + 4) _fail(position, "Unexpected identifier");
      if (_source.codeUnitAt(position + 1) != CHAR_u ||
          _source.codeUnitAt(position + 2) != CHAR_l ||
          _source.codeUnitAt(position + 3) != CHAR_l) {
        _fail(position);
      }
      _listener.handleNull(new Span(position, position + 4));
  